'#!/usr/bin/env perl'- shebangを使用してPerlスクリプトで汚染モードを設定するにはどうすればよいですか?
質問
Perlスクリプトで汚染モードを設定するにはどうすればよいですか
#!/usr/bin/env perl
シバン?
解決
ShebangラインのPerl5opt環境変数を渡すことができます。
#!/usr/bin/env PERL5OPT=-T perl
これはすべて私にとってかなり後方に見えます。
別のオプションは、次のことを検出しない場合、スクリプトを汚染モードで再排除することです。
#!/usr/bin/env perl
warn 'Taint mode is '.(${^TAINT} ? 'on' : 'off'); # For debugging
exec($^X,'-T',$0,@ARGV) unless ${^TAINT};
# do stuff under taint mode here
明らかに、これは主要なスタートアップパフォーマンスのヒットです。
他のヒント
汚染モードは、を介してのみ有効にできるため -T
旗、そして env
Shebangラインのフラグを受け入れないので、あなたの最良の選択肢はプログラムを経由して実行することです perl -T script.pl
スクリプトを直接実行するのではなく。
シバンで汚染モードを強制する必要がある場合は、 taintperl
次の内容を持つパス(EG/usr/local/bin)のどこかにスクリプト:
#!/bin/sh
/usr/bin/env perl -T
次に、Perlスクリプトで、持っています
#!/usr/bin/env taintperl
所属していません StackOverflow