$code .= ";\n1;"; # ... ? my $perl = qx/ which perl /; my $result = qx/ perl -c $code /; # CAN this work? If so, how? I'm a shell-tard. #### my $result = qx/perl -c -e '$code' 2>&1/; # bundle STDOUT and STDERR #### -e syntax OK #### my $result = qx/perl -c $tempfile 2>&1/; #### package My::Eval::Evil; eval $code; if ($@) { .... } package main; # or whatever package you've been in #### perl -e 'sub foo {print "foo\n" } package Foo; my $code = "*main::foo = sub {print \"bar\\n\" }"; eval $code; package main; foo()' bar