Perl sprintf: How Do I Use sprintf In a Perl Script?

Posted on in Categories , , , , , , , , last updated June 17, 2011

How do I use sprintf() function in a perl script under Linux or UNIX?

Perl printf() function is used to format and print data on screen. You need to use sprintf() to print or store formatted data/string to a variable or to a string. Perl does its own sprintf formatting–it emulates the C function sprintf, but it doesn’t use it (except for floating-point numbers, and even then only the standard modifiers are allowed). As a result, any non-standard extensions in your local sprintf are not available from Perl.

Perl printf() Example

The following statement will round number to 2 digits after decimal point, enter:

perl -e '$num=53535.35353535;printf ("Result = %.2f\n",$num);'

Perl sprintf() Example

Type the following at the shell prompt:

perl -e '$num=53535.35353535;$result=sprintf("Result = %.2f\n",$num);print "$result"'

To store output to a string or variable called $result you need to use the sprintf().

$result = sprintf("%.2f", $num); 
$now=sprintf("Today is ".`date`);
print "$result\n";
print "$now\n";

Recommend readings:

  1. See perl sprintf() documentation for supported conversions, format parameter, flags etc.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

3 comment

  1. Hi Vivek nixCraft Wizard,
    Thanks for your work.

    I think there are two bugs.
    Shouldn’t “print” instructions be :
    print “$result\n”;
    print “$now\n”;

    instead of using double backslash ?
    /* that’s what work on my system *:

    — Peko

Leave a Comment