Try this:
Note that \$kards \$bad in the eval string are escaped (update: and $card is not). Why?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
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: <%-{-{-{-<
In reply to Re^2: tr operator in eval
by AnomalousMonk
in thread tr operator in eval -- updated
by pgmer6809
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |