in reply to codeopen(INPUT, "<INPUT") gives INPUT opened only for output



Your trying to open a non defined filehandle, if you want to retore the output, you have to save it before closing it.
Try printing fileno(STDOUT).
#!/usr/bin/perl -lw use POSIX; my $TRAP = POSIX::tmpnam(); print STDERR "STDOUT= ".fileno(STDOUT); close(STDOUT); print STDERR "STDOUT= ".fileno(STDOUT); open(STDOUT, ">$TRAP") || die("$!: $TRAP"); #+> didn't work eval "print 'Waka waka!'"; seek(STDOUT, 0, 0); print STDERR "STDOUT= ".fileno(STDOUT); close(STDOUT); open(STDOUT, ">-"); print STDERR "STDOUT= ".fileno(STDOUT); open(INPUT, "<$TRAP") || die("$!: $TRAP"); $chldoutput = <INPUT>;

Theres no errors or warnings, perhaps you want to save STDOUT before closing it
open(MYSTDOUT, ">&STDOUT");

and later restore it with
open(STDOUT, ">&MYSTDOUT");


$anarion=\$anarion;

s==q^QBY_^=,$_^=$[x7,print