parthi parthi - 5 months ago 10
Perl Question

Difference between printf, print, and sprintf in Perl?

What is the specific usage of

print
,
printf
, and
sprintf
in Perl?

All three keywords are used for printing purposes, but can someone differentiate it briefly?

Answer

Short:

See the manuals:

Long:

print is the default output function. It does no formatting but may append a line break if Perl is called with -l:

print $foo;
print "Hello $world";
print $filehandle $something;

sprintf is a formatter and doesn't do any printing at all:

$result = sprintf('The %s is %d', 'answer', 42);

printf is the same as sprintf, but actually prints the result:

printf 'This is question %d on %s', 36882022, 'StackOverflow';

See the sprintf documentation for more details on valid placeholders/format strings.

Since 5.10, Perl also supports say which is basically a print plus an additional \n.