Perl: 2009年10月アーカイブ

さて、Perl の sprintf で、文字列の右側に 0 を補完するのはどうすればええんじゃろうねえ?

例えば、

$d    = '112200225';

して、この値を sprintf で編集すると、

$d      = sprintf("%020d", $d);

なら、00000000000112200225 となっちゃうんだけど、実際は、後ろに 0 を補完して、11220022500000000000 としたいのよ。

試しに sprintf("%-020d", $d) ってやってみたけど、これじゃあ何も補完されないだけだった。

後ろにスペースを埋めるというやり方はあるので、先にスペースを埋めてからそれを正規表現で 0 に変換しちゃえばいいんだが、こういうやり方しかないんかいのお?

$d    = '112200225';
$d    = sprintf("%-20s", $d);
$d    =~ s/\s/0/g;
print "$d\n";

とすれば、出力結果は 11220022500000000000 だ。
これをね、sprintf 一発でやりたいんだけどなあ。

識者の方、ぜひご教示ください。

このアーカイブについて

このページには、2009年10月以降に書かれたブログ記事のうちPerlカテゴリに属しているものが含まれています。

前のアーカイブはPerl: 2009年7月です。

次のアーカイブはPerl: 2009年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら