in reply to How to preserve the value of STDIN
Ick.
Untested:
Now if you don't destroy anything, reading from STDIN gives you what is already in $data which is what was in STDIN.use IO::Scalar; my $data; tie *HACK, 'IO::Scalar', \$data; print HACK <STDIN>; tied(*HACK)->setpos(0); *STDIN = *HACK;
UPDATE
The idea was good but apparently copying tied stuff like that does not maintain the tie. (I shoulda known that, sorry.) Try this code instead:
I tested this by addinguse IO::Scalar; $data = join '', <STDIN>; my $s; tie *STDIN, 'IO::Scalar', \$s; print STDIN $data; tied(*STDIN)->setpos(0);
after it, running it, and typing into it.print $data; print <STDIN>;
My apologies for the initial mistake.
|
---|
Replies are listed 'Best First'. | |
---|---|
(Ovid) RE: Re (tilly) 1: How to preserve the value of STDIN
by Ovid (Cardinal) on Sep 22, 2000 at 03:58 UTC | |
by Anonymous Monk on Feb 07, 2013 at 19:06 UTC |
In Section
Seekers of Perl Wisdom