Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: How to dup $FOO to STDIN

by jeroenes (Priest)
on Nov 15, 2001 at 12:25 UTC ( #125527=note: print w/replies, xml ) Need Help??


in reply to How to dup $FOO to STDIN

Hmmm. It took some time to figure out what you really wanted, until I figured to check 'info dup'. And there it was: You want to simply duplicate the filehandle. You can go several ways here. But first:

You should not use caps for variable names, only for fileglobs. All caps names may cause conflicts with later versions of perl. Moreover, it is confusing, and maybe causing you to do the wrong thing.

Solutions:

  1. Use a GLOB, and glob it to STDIN like:
    open FOO, "<filename" or die ...; *STDIN = *FOO;
    Not really neat, even confusing maybe, but should work.
  2. The open dup as described in perldoc perlopentut
    my $fileno = fileno( $foo ); open STDIN, ">&$fileno" or die "Could not open $fileno: $!";
  3. Just check 'perldoc perlipc' and IPC::Open2 for good measure.

HTH,

Jeroen
"We are not alone"(FZ)

Replies are listed 'Best First'.
Re: Re: How to dup $FOO to STDIN
by belg4mit (Prior) on Nov 15, 2001 at 20:30 UTC
    #1 doesn't meet the criterion of duping a scalar filehandle (which I need because this is hapenning in parallel forks).

    #2 Works!

    #3 I had looked at perlipc but found nothing for dupping STDIN or scalar filehandles.

    Thanks

    PS> "shouldn't not use caps" so I should then? ;-) Yeah wog has gotten on me about that too. I've cut back, but am still using for "globals" or effectively just scalar filehandles, so they lok like regular filehandles.

    -- perl -p -e "s/(?:\w);(<A HREF="/index.pl?node=st&lastnode_id=3333">st< +/A>)/'\$1/mg"
      Already figured you wanted to do something with childs or the like, that's why I added the ipc stuff. It actually describes named pipes, and the use of open for ipc.

      On the caps: :-) && You shouldn't. Fileglobs are in caps because they are really special. Filehandles are less magical.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://125527]
help
Chatterbox?
LanX where is the camera?
Tux => $HOME
[Eily]: you wrote boos instead of boss, and jedikaiti read that as boobs :)
[LanX]: Win claims only 8 MB left on C: how do I find out where the problem happens?
[Eily]: by Tux. And going home sounds like a good idea
[Eily]: LanX pretty much everywhere except in 8MB ?
[Eily]: s/by/bye/ someone hacked my keyboard I'm sure
[LanX]: good point! :)
[Eily]: LanX I don't understand the question though, you want to know what is taking so much space?
[Tanktalus]: Probably the swapfile :)

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (13)
As of 2017-09-20 16:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    During the recent solar eclipse, I:









    Results (237 votes). Check out past polls.

    Notices?