Perl 「 printf 」: 基礎的な用法 (0x3e)
目次 - Perl Index
Theme
Perl について、復習を兼ねて断片的な情報を掲載して行く連載その 0x3e回。
Perl で出力フォーマットを指定出来る関数 printf の基本的な利用方法について。
printf の変換指定子
まずは、
前回紹介した変換指定子の代表的なものの用法を確認します。
はじめに確認するのは「 %s 」です。
「 %s 」は文字列に対応していますので、「 LIST 」には文字列データを置きます。
printf "I know you can it, %s\n", 'Amuro';
文字列データはダブルクォーテーションで囲んでも良いです。また、クォートすることなく数値を指定しても、Perl はそれを文字列と解釈して問題なく表示します。
次に「 %d 」を確認します。
「 %d 」は符号付 10 進数に対応します。
"符号付" とは、マイナスの値を表現出来るということです。対して "符号無" はマイナスの値を表現出来ない分、プラスの値をより多く表現することが出来ます。
通常 10 進数を利用する場合は「 %d 」で問題ない様に思います。
仮に、小数点以下の数値があった場合は「 切り捨て 」られます。
printf "RX-%d\n", 78;
「 LIST 」に文字列を指定すると「
"string" isn't numeric in printf at youfile.pl line n. ( "文字列" は数値じゃない printf の )」といった具合に警告が出ます。
試しに「 use warnings 」を解除すると各文字が数値 「 0 」に置きかえられました。
「 %f 」は固定 10 進数表記の浮動小数点数です。
つまり、小数点以下の値も表示します。
printf "Divide %d by %d = %f\n", 5, 2, 5/2;
手元の環境では次の様に表示されました。
Divide 5 by 2 = 2.500000
小数点以下の桁数は任意に指定可能です。
0x3e -> 0x3f へ
次回は「 %f 」の桁数指定などを含めてさら確認していきます。
参考情報は書籍「 初めての Perl 第 6 版 」を中心に perldoc, Wikipedia および各 Web サイト。それと詳しい先輩。
目次 - Perl Index
関連記事