punctuation variables

| コメント(0)

ひょんなことから 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

コメントする