Beau E. Cox wrote:

> Hi -
> 
> I give up. Can someone help? I want to 'dup' an
> IO::xxx handle to STDIN. My latest try is:
> 
> #/usr/bin/perl
> use strict;
> use warnings;
> use IO::File;
>     my $fh = new IO::File;
>     $fh->open("< some.file") or die "cannot open some.file";
>     open (STDIN, "<&$fh") or die "cannot dup \$fh: $!\n";
>     print "\$fh duped\n";
>     $fh->close;
> 
> outputs:
> cannot dup $fh: Invalid argument
> 
> A 'regular' file handle works:
> 
> #/usr/bin/perl
> use strict;
> use warnings;
>     open (IN, "< some.file") or die "cannot open some.file";
>     open (STDIN, "<&IN") or die "cannot dup IN: $!\n";
>     print "IN duped\n";
>     close IN;
> 
> outputs:
> IN duped
> 
> What am I doing wrong?
> 
> Aloha => Beau.

have you try:

#!/usr/bin/perl -w

use strict;

use Fatal qw(open);
use IO::File;

my $f = new IO::File;
$f->open('foo.txt');
open(STDIN,'<&' . $f->fileno);
print while(<STDIN>);
$f->close;

__END__

which prints the content of foo.txt
Make sure you dup STDIN back to what it should be after you finish reading 
foo.txt

david

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to