John W. Krahn wrote:

Rob Dixon wrote:

If you miss out the comma with

 print $1 "\n"

then Perl looks at this as a method call on $1 as an IO::Handle object, or

 $1->print("\n");


No.

perldoc -f print
       print FILEHANDLE LIST
       print LIST
       print   Prints a string or a list of strings.  Returns true if
               successful.  FILEHANDLE may be a scalar variable name, in which
               case the variable contains the name of or a reference to the
               filehandle, thus introducing one level of indirection.

If the comma is missing then the first scalar or bareword argument is treated
as a filehandle.

Hmm. Well if I was wrong I'd like to be corrected, but it certainly /looks/ and
/behaves/ like indirect-object method call syntax, and the equivalent arrow
syntax works and does the same thing. But whether it's really a method call
under the hood I'm not absolutely certain, especially when there are oddities
like

  print(STDOUT "text\n");

working fine. Whatever it is, it certainly stops being either a list operator or
a function call, so what else can it be?

Rob

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to