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