sprintfで使用する引数を直指定する方法

久々にPerl。いや、ほんと久しぶりよね。

printf '%d年%d月%d日', 2010, 12, 22; # 2010年12月22日

上記のような処理の時に、引数の数は変更せずに年を削って「12月22日」と表示したい場合、以下のようにすれば可能。

printf '%2$d月%3$d日', 2010, 12, 22; # 12月22日

「%」と「d」の間に「数値$」を追加することで使用する引数を直指定できる。上記の場合だと2番目と3番目の引数を使うという感じになる。

こんなsprintfの使い方なんて滅多なことではしないと思うけど、その滅多が来ちゃったので滅多ごめん。

滅多ごめん。


# ちなみにPHPでも可能。


参考:sprintf - perldoc.perl.org