であればプラグマの使用libに、私たちが行うことができます。Perlでのperl
使用libにリスト;
@INC内のパスのリストを含めます。同様に、次のようにすることができます。
CONDITION、MODULE => ARGUMENTS;
条件付きモジュールを含むように。
はCONDITION、LIST場合
利用libのようなもの、両方のミックスを行うことが可能です。
条件付きパスのリストを含めます。これはうまくいかないようです。
編集: は申し訳ありませんが、私はまだ働いて、それを得ることができません。これは私がやっていることですが、うまくいきません。何が間違っているとお考えですか?
use Data::Dumper;
BEGIN {
my $env=$ENV{'ENV'};
use if $env eq 'OLD', lib => '/home/vivek/OLD';
use if $env eq 'NEW', lib => '/home/vivek/NEW';
}
print Dumper \@INC;
あなたの条件は、コンパイル時に解決可能である必要があります。 – tchrist
$ ENV {'ENV'}を変数に代入するのではなく、代わりに$ ENV {'ENV'}を直接使用すると動作します。しかし、BEGINブロックで$ envを計算することはできません。 – Vivek
あなたの例は動作しません。 'my $ env = ... 'という代入は' use if'の後に実行されます。 'もしあれば'がまず先に行く。非my変数に割り当てられた、完全に囲まれた 'BEGIN'ブロックを持っていなければなりません。そのブロックの外側と下方には、変数を含む' use if'があります。 – tchrist