in reply to Re^2: Comma's and blocks
in thread Comma's and blocks

zerAs well the print uses a comma when a
proper file handle '<' and '>' are used. Why do the use of proper
terms affect the use of commas

As has been said in another response,
the  print <STDOUT> , "Hello";
invokes reading a filehandle in list context and printing
the result afterwards - but *not* through your "proper file handle" ;-)
It has probably also been noted elswhere
that this is like  print STDOUT <STDOUT>, "Hello";

The notation print filehandle LIST stems (IIRC) from the
"indirect object notation", like  $q = new CGI; #(no comma)
which would, in "direct" object notation read:  $q = CGI->new()

From this point of view, the file example might be equivalent
to  STDOUT->print("Hello"); #, which indeed is the case.
The above idioms can be used in Perl after including the IO::Handle
module, then it'll look like (pseudocode):
# from http://perldoc.perl.org/IO/Handle.html $io = new IO::Handle; # indirect object notation +! if ($io->fdopen(fileno(STDOUT),"w")) { $io->print("Hello"); # direct object notation! }
See: IO::Handle documentation

Regards
mwa