汚染モード
back
-T
外部から入力されるデータ(引数、環境変数、ファイル入力等)に対して
汚染チェックが行われ、「そのまま」その値を使用(例えば system でコマンド実行)
できないようにするオプション。
open F, $ARGV[0] or die "cannot open $ARGV[0]: $!\n";
while (<F>) {
}
close(F);
外部から入力された $ARGV[0] は汚染された変数であり、
そのまま open しようとしてもエラーになる。
変数を「きれいにする」には、入力を正規表現でチェックし、
メモリ変数($1, $2 ...)を代入する。
$file = $ARGV[0];
$file =~ /(\w*)/;
$file = $1;
あくまでコーディング中に、プログラマに「この変数はチェックしないでええんかコラ」と
通知するための機能。
オプションをつけて実行させて、「変な値が来たときはエラーにする」などのエラーチェック
を行うためのオプションではなく、「エラーチェックをプログラマに実装させるよう注意喚起
する」ためのオプション。
当然実行速度は遅くなる。
back