in reply to Re^4: why lexical variables can not be interpolated?
in thread why lexical variables can not be interpolated?

use strict; use warnings; my %legalReplacements = (name=>'Joe', age=>42); my $text = q(Hi I'm $name and happen to be $age. You can call me $nam +e, if you tell me your $ARGV.); my $regex = qr/\$([a-zA-Z]+)/; while ($text =~ /$regex/) { if (not exists $legalReplacements{$1}) { warn "INTRUDER ALERT: attempting access to '$1'"; last; } $text =~ s/$regex/$legalReplacements{$1}/; } print "Final text:\n"; print $text;
gives
C:\>perl Test.pl INTRUDER ALERT: attempting access to 'ARGV' at test.pl line 13. Final text: Hi I'm Joe and happen to be 42. You can call me Joe, if you tell me y +our $ARGV. C:\>_

Replies are listed 'Best First'.
Re^6: why lexical variables can not be interpolated?
by lightoverhead (Pilgrim) on Oct 21, 2013 at 18:54 UTC

    Nice solution! Hash is used here too. Thank you.