print "Script content: $script_content\n"; print "Script input: $script_input\n"; open(SAVEOUT, ">&STDOUT"); open(SAVEERR, ">&STDERR"); close(STDIN); open(STDIN, '<',\my $stdin); #seek STDIN,0,0; # with or without, no diff. $stdin .= $script_input; #seek STDIN,0,0; # with or without, no diff. close(STDOUT); open(STDOUT,'>' , \my $stdout); close(STDERR); open(STDERR,'>' , \my $stderr); select(STDERR); $| = 1; select(STDOUT); $| = 1; eval $script_content; my $result_code = $@; close(STDOUT); close(STDERR); open(STDOUT, ">&SAVEOUT"); open(STDERR, ">&SAVEERR"); if ( ! $stderr ) { $stderr = ''; } # my db doesn't like nulls. if ( ! $stdout ) { $stdout = ''; } print "STDERR:" . $stderr; print "STDOUT:" . $stdout;