This is one of the idiosyncrasies of Perl syntax: when printing to a filehandle, there must be no comma between the filehandle and the format string. See printf.
Update 1: See also the comment at the end of brian_d_foy’s 2005 thread Perl oddities:
You don't put a comma between the filehandle name and the list you give to print. I've just always thought that was odd, and I go out of my way to point it out to people in Perl classes. I don't have a problem with this while I code, but I still think it's an odd corner of syntax.
Update 2: With the comma, Perl thinks the filehandle is the first thing to be printed, so it stringifies it and prints the string to STDOUT. You can see this by doing it explicitly, like this:
18:09 >perl -we "open my $fh, '<', 'Test1.txt'; printf '%s', $fh;" GLOB(0x2fc0a4) 18:13 >
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re: XML::Simple and output
by Athanasius
in thread XML::Simple and output
by expat
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |