my $code = qq(
\$str =~ m"$pattern";
for(\$xx = 1; \$xx <=2; $xx++)
{
eval('\$backRef = \$\$xx;');
push(\@\$backRefArr, \$backRef);
}
);
eval($code);
print "@$backRRefArr";
my $a1 = 'a1_v';
my $varName;
my $code = qq(
$varName = 'a1';
print \$\$varName;
);
my $code2 = "
$varName = 'a1';
print \$\$varName;
";
print "code=$code\n";
print "code2=$code2\n";
#(That should explain the first part... qq is realy the same as "..., if you have an ebcdic system qq( ) is simpler than just "...
# This do not work, either
$varName = 'a1';
print "\$$varName"
#This does what you told it to do print $ and the contents of $varName: result: $a1 (without line feed)...
$varName = 'a1';
eval( "print \$$varName; " );
print "\n";
eval( "print \"\${$varName}\"; " );
print "\n";
eval( "\$x = \"\${$varName}\"; print \$x;" );
print "\n";
$varName = 'a1';
print( "print \$$varName; " );
print "\n";
print( "print \"\${$varName}\"; " );
print "\n";
print( "\$x = \"\${$varName}\"; print \$x;" );
print "\n";
my $a1 = 'v_1';
my $varName = 'a1';
{ # begin closure
no strict 'refs';
print $$varName, "\n";
} # end closure
does not require an eval. That is a symbolic ref and works fine.
thanks