suidなperlを実行したときに、 Insecure dependency ....のエラーが出る場合で、どうしても回避したい場合の処理(perlsec.1より)。 サブパターンを参照することでも、この汚染チェックの仕組みの裏をかくことができます。 $1, $2 といった部分文字列を使うときには、Perl は、使っているみなさん自身が、パターンを書く時点で、自分で何をしているのかが分かっているものと、仮定するのです: $ARGV[0] =~ /^-P(\w+)$/; $printer = $1; # 汚染されません これは、\w+ がシェルのメタ文字にマッチしませんから、かなり安全です。 /.+/ は安全とはいえないものですが、Perl はそれをチェックしてくれませんから、パターンの内容にも注意しないといけません。 これは、($> を $< に合わせないのであれば) ファイル名を与えて、