Perl: 句読点変数のリファクタリング
Perl には $! $? $@ $| $" $, などのいわゆる句読点変数が多く定義されている。
これがコードの視認性の悪さにつながっているのは疑いの余地もない。
English モジュールを利用することで、以下のような名前付きの変数を使えるようになる。
・名前付き変数の例
組み込みグローバル変数 | 名前付き変数(English モジュール) | 概要 |
$! | $OS_ERROR $ERRNO | エラー番号またはエラーメッセージ |
$? | $CHILD_ERROR | 最後に実行されたコマンドのステータス |
$@ | $EVAL_ERROR | 直前の eval コマンドのエラーメッセージ |
$| | $OUTPUT_AUTOFLUSH | 出力の自動フラッシュ |
$" | $LIST_SEPARATOR | リストセパレータ |
$, | $OUTPUT_FIELD_SEPARATOR $OFS | 出力フィールドセパレータ |
ただし、『Perl ベストプラクティス』 (O'REILLY) によれば、English モジュールの使い方は以下のようにすべしとある。
use English qw( -no_match_vars );
これは、マッチ変数を定義することによる弊害(正規表現の性能劣化)を防ぐためである。
参考:
『Perl ベストプラクティス』 (O'REILLY)
http://www.tutorialspoint.com/perl/perl_special_variables.htm
0 件のコメント:
コメントを投稿