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:
- 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.
- The open dup as described in perldoc perlopentut
my $fileno = fileno( $foo );
open STDIN, ">&$fileno" or die "Could not open $fileno: $!";
- Just check 'perldoc perlipc' and IPC::Open2 for good measure.
HTH, Jeroen
"We are not alone"(FZ) | [reply] [Watch: Dir/Any] [d/l] [select] |
#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"
| [reply] [Watch: Dir/Any] [d/l] |
| [reply] [Watch: Dir/Any] |