O'Reilly logo

Learning Perl, Second Edition by Randal L. Schwartz, Tom Christiansen

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

6.3. Output to STDOUT

Perl uses the print and printf functions to write to standard output. Let's look at how they are used.

6.3.1. Using print for Normal Output

We've already used print to display text on standard output. Let's expand on that a bit.

The print function takes a list of strings and sends each string to standard output in turn, without any intervening or trailing characters added. What might not be obvious is that print is really just a function that takes a list of arguments, and returns a value like any other function. In other words,

$a = print("hello ", "world", "\n");

would be another way to say hello world. The return value of print is a true or false value, indicating the success of the print. It nearly always succeeds, unless you get some I/O error, so $a in this case would usually be 1.

Sometimes you'll need to add parentheses to print as shown in the example, especially when the first thing you want to print itself starts with a left parenthesis, as in:

print (2+3),"hello";   # wrong! prints 5, ignores "hello"
print ((2+3),"hello"); # right, prints 5hello
print 2+3,"hello";     # also right, prints 5hello

6.3.2. Using printf for Formatted Output

You may wish a little more control over your output than print provides. In fact, you may be accustomed to the formatted output of C's printf function. Fear not: Perl provides a comparable operation with the same name.

The printf function takes a list of arguments (enclosed in optional parentheses, like the print

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required