Input Operators
There are several input operators we'll discuss here
because they parse as terms. Sometimes we call them pseudoliterals
because they act like quoted strings in many ways. (Output operators
like print
parse as list operators and are
discussed in Chapter 29.)
Command Input (Backtick) Operator
First of all, we have the command input operator, also known as the backtick operator, because it looks like this:
$info = `finger $user`;
A string enclosed by backticks (grave accents, technically)
first undergoes variable interpolation just like a double-quoted
string. The result is then interpreted as a command line by the
system, and the output of that command becomes the value of the
pseudoliteral. (This is modeled after a similar operator in Unix
shells.) In scalar context, a single string consisting of all the
output is returned. In list context, a list of values is returned,
one for each line of output. (You can set $/
to
use a different line terminator.)
The command is executed each time the pseudoliteral
is evaluated. The numeric status value of the command is saved in
$?
(see Chapter
28 for the interpretation of $?
, also
known as $CHILD_ERROR
). Unlike the
csh version of this command, no translation is
done on the return data--newlines remain newlines. Unlike in any of
the shells, single quotes in Perl do not hide variable names in the
command from interpretation. To pass a $
through
to the shell you need to hide it with a backslash. The
$user
in our finger example above ...
Get Programming Perl, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.