develooper Front page | perl.perl5.porters | Postings from July 2008

Re: Fun with open() on a string

Thread Previous | Thread Next
From:
H.Merijn Brand
Date:
July 30, 2008 06:22
Subject:
Re: Fun with open() on a string
Message ID:
20080730152157.1fff05a9@pc09.procura.nl
On Wed, 30 Jul 2008 08:08:38 -0500, Graham Barr <gbarr@pobox.com> wrote:

> 
> On Jul 29, 2008, at 8:42 AM, Mark Mielke wrote:
> 
> > Peter Scott wrote:
> >> This very nearly qualifies as an easter egg.  Inspect the following:
> >>
> >>    perl -e 'close STDIN; open STDIN, "<", \$x; print <>'
> >>
> >> Guess what it does.  Run it.  See if you were right.
> >>
> >> Bugworthy?  I don't know; maybe, that's why I mention it here.  But  
> >> it had
> >> some entertainment value for me today.
> >>
> >
> > +1 for weird. :-)
> >
> > Do you have an explanation for why it does what it does? :-)
> 
> Yes. <> is reading from stdin in C (file descriptor 2) which will be

No, File descriptor 0. 1 is stdout, 2 is stderr

> what was first opened after closing STDIN.
> 
> The open STDIN, "<", \$x causes the PerlIO module to be loaded, so the  
> first file opened is PerlIO.pm
> 
> What you see in the output is what is after the __END__ in PerlIO.pm


-- 
H.Merijn Brand          Amsterdam Perl Mongers  http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, SuSE 10.1, 10.2, and 10.3, AIX 5.2, and Cygwin.
http://mirrors.develooper.com/hpux/           http://www.test-smoke.org/
http://qa.perl.org      http://www.goldmark.org/jeff/stupid-disclaimers/

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About