11

を使用して perl スクリプトで汚染モードを設定するにはどうすればよいですか?

#!/usr/bin/env perl

シバン?

4

2 に答える 2

12

シバンラインでPERL5OPT環境変数を渡すことができます。

#!/usr/bin/env PERL5OPT=-T perl

これは私にはかなり逆に思えます。

もう1つのオプションは、スクリプトがオンになっていないことを検出した場合に、汚染モードでスクリプトを再実行することです。

#!/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

明らかに、これはスタートアップのパフォーマンスに大きな打撃を与えます。

于 2010-03-27T11:23:43.037 に答える
3

-T汚染モードはフラグを介してのみ有効にすることができenv、シバン行のフラグを受け入れないためperl -T script.pl、スクリプトを直接実行するのではなく、プログラムを実行することをお勧めします。

シバンで汚染モードを強制する必要がある場合はtaintperl、次の内容のスクリプトを PATH (例: /usr/local/bin) のどこかに作成できます。

#!/bin/sh
/usr/bin/env perl -T

次に、Perl スクリプトで、

#!/usr/bin/env taintperl
于 2010-03-27T11:02:31.933 に答える