----- Original Message ----
> From: Ovid <[EMAIL PROTECTED]>
>
> sub get_stream {
> my ( $self ) = @_;
> my $command = $self->_get_command;
>
> local *FH;
> # -| is safer, but not portable.
> if ( open FH, "$command |" ) {
> return TAPx::Parser::Iterator->new(\*FH);
> }
> else {
> $self->error("Could not execute ($command): $!");
> return;
> }
> }
>
> However, whenever I try to run it, I get this error message:
>
> Can't dup STDOUT: Bad file descriptor at
> /usr/local/lib/perl5/5.8.7/Test/Builder.pm line 1322.
After struggling with this for over an hour, I think I finally found the
problem. If I *don't* localize the filehandle, this problem goes away.
Apparently, localizing that typeglob caused the underlying descriptor to
disappear once the localized typeglob went out of scope. I wondered why the
FILE typeglob in Test::Harness::Straps::analyze_file() wasn't localized and now
I know. A comment in there might be useful.
Cheers,
Ovid
-- If this message is a response to a question on a mailing list, please send
follow up questions to the list.
Web Programming with Perl -- http://users.easystreet.com/ovid/cgi_course/