'#!/usr/bin/env perl'- shebangを使用してPerlスクリプトで汚染モードを設定するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2528959

  •  22-09-2019
  •  | 
  •  

質問

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top