ひょんなことから perldoc perlvar とか perldoc -m English をつらつらと眺めてみました。 punctuation variables は「定義済み変数」って訳されているようです。
- $@
- EVAL_ERROR
- $|
- OUTPUT_AUTOFLUSH
- $/
- INPUT_RECORD_SEPARATOR
- $!
- OS_ERROR
- $$
- PROCESS_ID
- $_
- ARG
このへんは良く使いますね。最近知って便利かなぁと思ったのは以下のようなもの。
- $.
- INPUT_LINE_NUMBER
perl -ne 'printf "%05d: %s", $., $_;' hoge.pl とかで cat -n の代わりとかできますね。
- $,
- OUTPUT_FIELD_SEPARATOR
なんか簡単な print debug したいときとか $, = "\n"; print @data; とかやると、@data の中身が改行で区切られて出力されます。ま join "\n", @data でいんだけどさ。
まとめ
perl のスクリプトを読んで見慣れない $" 等の定義済み変数に出会ったら perldoc perlvar で内容を確かめましょう。

Comments