develooper Front page | perl.perl5.porters | Postings from October 2003

Re: [perl #24204] Dupping STDERR for reading.

Thread Previous | Thread Next
October 15, 2003 15:07
Re: [perl #24204] Dupping STDERR for reading.
Message ID:
On Wed, Oct 15, 2003 at 02:51:00PM -0700, Michael G Schwern wrote:
> On Wed, Oct 15, 2003 at 12:44:48PM +0200, Abigail wrote:
> > Whether or not it's hokey isn't the point. Fact is that one used to
> > be able to dup STDERR and open it for reading, and now you no longer
> > can. Neither perldelta nor perl58delta mentions this, nor was it
> > deprecated, so I don't think this was an intentional decision. 
> > Therefore, I would classify it as a low priority bug.
> I don't think this was in intentional feature, either.
> Do we now need to start deprecating undocumented side-effects that we don't
> even know exist?
> Somebody found an undocumented side-effect and made the mistake of using it.
> Something internal changed to break that undocumented side-effect.  That's
> the price you pay for using a trick.
> Do we document that STDERR is a filehandle open to a tty?

What undocumented features are you talking about?

From 'man perlopentut':

       Perl's "open" function was designed to mimic the way comĀ­
       mand-line redirection in the shell works.

In the shell, dupping stderr for read works just fine.

Furthermore, the ability to open STDERR for reading isn't a Perl specific
side-effect; it's a UNIX thing.

Finally, in Perl, including 5.8.1 and 5.9.0, dupping file-descriptor 2
for reading works fine. This works ok:

    open STDERRIN, "<&2" or die $!;

and this doesn't:

    open STDERRIN, "<&STDERR" or die $!;


Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About