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. (NOTE: If FILEHANDLE is a variable and
the next token is a term, it may be misinterpreted as an operator
unless you interpose a +
or put parentheses around the arguments.)
If FILEHANDLE is omitted, prints by default to standard output (or
to the last selected output channel--see /select). If LIST is
also omitted, prints $_
to the currently selected output channel.
To set the default output channel to something other than STDOUT
use the select operation. The current value of $,
(if any) is
printed between each LIST item. The current value of $\
(if
any) is printed after the entire LIST has been printed. Because
print takes a LIST, anything in the LIST is evaluated in list
context, and any subroutine that you call will have one or more of
its expressions evaluated in list context. Also be careful not to
follow the print keyword with a left parenthesis unless you want
the corresponding right parenthesis to terminate the arguments to
the print--interpose a +
or put parentheses around all the
arguments.
Note that if you're storing FILEHANDLES in an array or other expression, you will have to use a block returning its value instead:
print { $files[$i] } "stuff\n"; print { $OK ? STDOUT : STDERR } "stuff\n";