http://qs321.pair.com?node_id=11122230


in reply to Re: tr operator in eval
in thread tr operator in eval -- updated

Try this:

Win8 Strawberry 5.30.3.1 (64) Sat 09/26/2020 0:05:59 C:\@Work\Perl\monks >perl use strict; use warnings; my $kards; my $bad = 'AKQJT98765432KKKK'; my $card = 'K'; eval "\$kards = \$bad =~ tr/$card//"; print "1: Num of '$card' in $bad is == $kards \n"; my $kings = $bad =~ tr/K//; print "2: Num of '$card' in $bad is == $kings \n"; __END__ 1: Num of 'K' in AKQJT98765432KKKK is == 5 2: Num of 'K' in AKQJT98765432KKKK is == 5
Note that  \$kards \$bad in the eval string are escaped (update: and $card is not). Why?

Update: Just read your update to the OP and I think you pretty much have the idea I was trying to get across. However, now try running the OP update code with strict and warnings enabled.


Give a man a fish:  <%-{-{-{-<