sprintf doesn't quite work - it can only handle whatever the underlying perl library handles natively:
The next best thing I can think of is:$ perl5.8.6 -MMath::BigInt -e '$i = Math::BigInt->new("123_456_789_000 +_000"); printf "%025d\n", $i' -000000000000000000000001
Note that this does the right thing if the string is already longer than you want, e.g.:$ perl5.8.6 -MMath::BigInt -e '$i = Math::BigInt->new("123_456_789_000 +_000"); $s = $i->bstr(); $s = '0' x (25 - length $s) . $s; print $s,$ +/' 0000000000123456789000000
Hope that helps.$ perl5.8.6 -MMath::BigInt -e '$i = Math::BigInt->new("123_456_789_000 +_000"); $s = $i->bstr(); $s = '0' x (10 - length $s) . $s; print $s,$ +/' 123456789000000
In reply to Re^2: Math::BigInt and Leading Zeros
by Tanktalus
in thread Math::BigInt and Leading Zeros
by aplonis
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |