Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re (tilly) 1: How to preserve the value of STDIN

by tilly (Archbishop)
on Sep 22, 2000 at 03:22 UTC ( #33587=note: print w/replies, xml ) Need Help??


in reply to How to preserve the value of STDIN

Ick.

Untested:

use IO::Scalar; my $data; tie *HACK, 'IO::Scalar', \$data; print HACK <STDIN>; tied(*HACK)->setpos(0); *STDIN = *HACK;
Now if you don't destroy anything, reading from STDIN gives you what is already in $data which is what was in STDIN.

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:

use IO::Scalar; $data = join '', <STDIN>; my $s; tie *STDIN, 'IO::Scalar', \$s; print STDIN $data; tied(*STDIN)->setpos(0);
I tested this by adding
print $data; print <STDIN>;
after it, running it, and typing into it.

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
      I don't understand why it works, this is pure magic

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://33587]
help
Chatterbox?
[1nickt]: stevieb it turns out that Dell still has the Precision line of "mobile workstations", just not displayed on their main website. I found the Precision 7710 with 4k display/full-size keybd as req'd.
[1nickt]: List $2,788 (!), on sale for $1766, also a $200 coupon on the site thru 3/30 ... final price $1,566. Includes 3-yr on-site service.

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (7)
As of 2017-03-27 12:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (320 votes). Check out past polls.