> > Why am I not able to do this as is in s/([a-z])/$h{$1}/g; etc? > > Oh, you're no fun anymore! > > > {tr/a-z/$compstr/;print $_; > > RTFM perlop(1): > > Note that because the transliteration table is > built at compile time, neither the SEARCHLIST nor > the REPLACEMENTLIST are subjected to double quote > interpolation. That means that if you want to use > variables, you must use an eval(): > > eval "tr/$oldlist/$newlist/"; > die $@ if $@; > > eval "tr/$oldlist/$newlist/, 1" or die $@; > unless you have fun finding an answer... instead of "tr" use "s": s/\w/newchar($1)/seg; would allow you to write your own tr, no? a bit slower than blind tr, but think of the possibilities: s/\w+/sayit( $1 )/seg; sub sayit { my $word = shift; if( $dictonary{$word} ) { print AUDIO $dictonary{$word}; } else { print AUDIO map { $dictonary{$_} } split //, $word; } } might make a q&d response filter for your automated computer butler. aside: another good resource for questions like this are mailing lists of the local Perl Mongers. these normally have fewer posts than lang.perl.misc and don't require a newsfeed. see the existing groups at pm.org for the one near you. -- Steven Lembark 2930 W. Palmer St. Chicago, IL 60647 lembark@wrkhors.com 800-762-1582 ==== Want to unsubscribe from Fun With Perl? Well, if you insist... ==== Send email to <fwp-request@technofile.org> with message _body_ ==== unsubscribe