Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Problems with zero filling a number.

by dwatson06 (Friar)
on Jul 15, 2002 at 18:42 UTC ( #181873=perlquestion: print w/replies, xml ) Need Help??

dwatson06 has asked for the wisdom of the Perl Monks concerning the following question:

I am trying to write a set of numbers to a file so that another programmer may reference them. This number needs to be zero filled with 9 digits. I can use the following to print out on the command line...
my $getNumber = 213;
printf "%09d$getNumber";
And it prints fine but when I write to file it writes%09d213.
Is there a simple sub included to pad numbers (or zero fill) to a given length?
Thank you,

Replies are listed 'Best First'.
Re: Problems with zero filling a number.
by broquaint (Abbot) on Jul 15, 2002 at 18:52 UTC
    Try re-reading the docs for printf() (which may require reading the docs for sprintf())
    printf "%09d", 213; __output__ 000000213



Re: Problems with zero filling a number.
by thelenm (Vicar) on Jul 15, 2002 at 18:54 UTC
    You'll want to pass $getNumber as a separate argument to printf (or sprintf), like this:
    my $getNumber = 213; my $padded = sprintf("%09d", $getNumber);

    -- Mike


Re: Problems with zero filling a number.
by Abigail-II (Bishop) on Jul 16, 2002 at 12:08 UTC
    Very, very strange. Are you sure that you did a printf? Not that your code is correct as others have pointed out, but it shouldn't write %09d213 either. I've tried it on all versions of Perl released since 5.000, and they all print 000000000213. From 5.7.1 onwards, it will print a warning as well.


Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://181873]
Approved by broquaint
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (1)
As of 2023-05-31 00:17 GMT
Find Nodes?
    Voting Booth?

    No recent polls found