2016-11-01 4 views
1

私はこのような単純な1オフを書くための短い方法を探しています:私は、私はそれは相当だろう設定することができ、環境変数を期待していたPerl:env varの最小バージョンを指定しますか?

perl -e 'use 5.016;say 4.3%3' 

または

perl -e 'print 4.3%3 ."\n"' 

use 5.016ので、私は書くことができます:

perl -e 'say 4.3%3' 

はおそらく、私は、ドキュメントに何かを見落としてきましたか?

答えて

8
perl -E 'say ...'; 

これは-eのようですが、(sayのいずれかである)すべての機能がオンになります。 perldoc/perlrunから:

  • -eコマンドライン

    は、プログラムの1行を入力するために使用することができます。 -eを指定すると、Perlは引数リストのファイル名を検索しません。 [...]

  • -Eコマンドライン

    は、それが暗黙のうちに(メインコンパイル単位で)すべてのオプション の機能を有効にすることを除いて、ちょうど-eのように振る舞います。 featureを参照してください。


正直に言うと:私の答えは正確にあなたの元の質問に答えていません。あなたは最小のPerlバージョンのの使用方法/要求方法を尋ねました。 @ThisSuitIsBlackNotさんのコメントに与えられた解決策は、より良いフィットすることについて:

perl -M5.016 -e 'say ...' 

これは、Perl 5.16に付属のすべての機能をオンにして、Perlのバージョンが5.16未満であれば、同時に文句を言います。いつもの場合、herehereとしてください。

-Eソリューションは現在のPerlのバージョンのすべての機能を無効にします。


また、環境変数も尋ねました。 indeed oneがあります:彼らは、すべてのPerlコマンドライン上であるかのように、この変数に

export PERL5OPT='-Mstrict -Mwarnings -M5.016' 

スイッチが処理されます。

環境変数を使用して、コードを共有する場合は注意が必要:あなたは(あなたがあなたの.bashrcに数ヶ月前にそれを設定しているため)それについて同僚に伝えるために忘れてしまった場合、その後、いくつかのスニペットは、他人のためにあなたのために働くが、ないかもしれません。

+0

は、スクリプトでそれを追加したいと思うかもしれません、 'use feature'を ';'か 'use 5 'としなければなりません。10; 'など – stevieb

関連する問題