Just tried it. Apparently, that was part of the problem; however, I'm still getting syntax errors after two levels of evaluation -- I tried messing around with qq rather than heredocs which might be clobbered, and I put in a print to show me the code at each stage:
$_ = 'Z()';
foreach my $x (1..5)
{
print "$_\n";
<STDIN>;
$_ = eval $_;
die $@ if $@;
}
sub Z
{
return <<'Z';
...
Z
}
__END__
gives:
Z()
local ($),$(,$;,@_) = (qw/[ ] ( ) ' ; ,/, ' ');
return sprintf '%s', qq"\n
my \$z=$_[1]}\@$)$(_ \"a\$bc%e$;fg$_[0]*+i$_[3]-k.lm/0n1o2p3q4r5s6tuvw
+xy$_[2]{=$_[1]$_[2]\n
sprintf$_[4]$_[1]%s$_[1]$_[3]join$_[4]$_[1]$_[1]$_[3]$;map{substr$;\$z
+,length$;\$_$_[0]+$_[4]\$_$_[3]1$_[0] } (\n
qw^20!! 28$_[4]setsockopt reverse 20!! 4est om 40eight,\n
oomphasaurus-ish-li-nessmen 44 23 43 J 26bumblebees 40eight,\n
0000000000000000000000000000000000 23twenties-in-a-row$_[3]^$_[0]$_[3]
+\n
$_[1]$;s$_[4]tr s'$_[3]$_[4]map { substr$;\$_$_[3]0,2) } ('ubbidubbi',
+'$_[4]tingle',$_[4]'men$_[1]$_[3]\n
'r stage', 'reputation', $_[1]verse$_[1]$_[3]$_[1]rst$_[4]packet','e =
+ mc**2'$_[3]$_[1]symball',\n
'swastika', 'risc processor', 'tenable', ' log', 'can', 'lt', 'imp',\n
'e = 2.7182818...', 'sending...', 'tsunami', 'ocarina', 'ko',\n
$_[1]pterodactyl$_[1]$_[3]$_[1] gone$_[1]$_[3]$_[1]etymology$_[1],$_[1
+]pens'$_[3]'erbium$_[1],'natrium',\n
'megadodo$_[1]$_[3]' ghastly$_[1]$_[3]'etcetera', 'nepotism', 'tb', 'y
+n whoosh',\n
'amtrak', $_[1]e$_[0]$_[1]$_[0]$_[3]map{return\$_ unless /^$;$)a-z$({2
+}$_[0]/; scalar\n
reverse$_[4]\$1$_[4]}$;$_[1]; $_[1],'rp','ni','ft','$;q','q/','%s',' /
+x3 . \"',\n
$_[1]%s;\"$_[3]$_[1]$_[3]$_[1]pam } $(_\$$)s\$$_[4]{$_[4]pam$_[1]$_[3]
+$_[1]{$_[1]$_[0],map{\n
sprintf\"$;%s$_[0]*$;\\\$_**%s$_[0]+\"}(\n
$)$_[1]-5/3$_[1]$_[3]$_[4]$_[4]$_[4]'3'$($_[3]\['11','2'\]$_[3]\['-61/
+3'$_[3]$_[1]1$_[1]$(,$)'16$_[1],$_[1]0'$($_[0],'0}1..4$_[0]',';');\n
";
Scalar found where operator expected at (eval 2) line 2, near "]$_"
(Missing operator before $_?)
Backslash found where operator expected at (eval 2) line 2, near "]\"
(Missing operator before \?)
Scalar found where operator expected at (eval 2) line 3, near "]$_"
(Missing operator before $_?)
Bareword found where operator expected at (eval 2) line 3, near "s$_[1
+]$_[3]join
$_"
Scalar found where operator expected at (eval 2) line 3, near "]$_"
(Missing operator before $_?)
Scalar found where operator expected at (eval 2) line 3, near "]$_"
(Missing operator before $_?)
Scalar found where operator expected at (eval 2) line 3, near "]$_"
(Missing operator before $_?)
Scalar found where operator expected at (eval 2) line 3, near "]$;"
(Missing operator before $;?)
Backslash found where operator expected at (eval 2) line 3, near "$;\"
(Missing operator before \?)
Backslash found where operator expected at (eval 2) line 3, near "$;\"
(Missing operator before \?)
Scalar found where operator expected at (eval 2) line 3, near "$_$_"
(Missing operator before $_?)
Backslash found where operator expected at (eval 2) line 3, near "]\"
(Missing operator before \?)
Scalar found where operator expected at (eval 2) line 3, near "$_$_"
(Missing operator before $_?)
Number found where operator expected at (eval 2) line 3, near "]1"
(Missing operator before 1?)
Scalar found where operator expected at (eval 2) line 3, near "1$_"
(Missing operator before $_?)
syntax error at (eval 2) line 2, near "{="
But it helped. Thanks. |