a) yes I was able to get it to work with a double dup to save STDOUT (see b below) however I don't understand why I cannot recover STDOUT by one of:
open(STDOUT, '>-'); open(STDOUT, '>&=1');
b)The folloing is similar to what you posted with some updates *but* if you run it with -w -Mstrict you get: Name "main::SAVE" used only once: possible typo
use POSIX; local $/ = undef; my $chldoutput; my $TRAP = POSIX::tmpnam(); print "Gonna use $TRAP\n"; open(SAVE1, ">&STDOUT"); open(SAVE2, ">&STDERR"); close(STDOUT); open(STDERR, ">$TRAP"); open(STDOUT, ">>$TRAP") || die("$!: $TRAP"); #+> didn't work eval "print STDERR 'Scary... ';print 'Waka waka!'"; close(STDOUT); close(STDERR); open(STDOUT, ">&SAVE1"); open(STDERR, ">&SAVE2"); open(INPUT, $TRAP) || die("$!: $TRAP"); $chldoutput = <INPUT>; print "ABC: $chldoutput\n"; unlink($TRAP);
-- perl -p -e "s/(?:\w);(<A HREF="/index.pl?node=st&lastnode_id=3333">st< +/A>)/'\$1/mg"
In reply to Re: Re: (Anarion) open(INPUT, "<INPUT") gives INPUT opened only for output
by belg4mit
in thread codeopen(INPUT, "<INPUT") gives INPUT opened only for output
by belg4mit
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |