私はData :: Dumperを頻繁に使用する傾向があり、私の.plコード内のすべてのパッケージの先頭に次の定型文を持つことになります。Perlはすべてのパッケージにインポートできますか?
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Deparse = 1;
$Data::Dumper::Purity = 1;
「現在の.plファイル内に、これらのステートメントを自動的に仮定します。」と指定する方法はありますか?
例えば私は、これはすぐにあまりにも多くの定型反復を取得し、保守性を害することができ
package foo;
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Deparse = 1;
$Data::Dumper::Purity = 1;
my @localState = (1, 2, 3, 4, 5);
sub test {
print Dumper \@localState;
}
package main;
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Deparse = 1;
$Data::Dumper::Purity = 1;
foo->test;
を持っているでしょう。
悲しいことに、この定型句はグローバルスコープではなく関数に配置されるため、この定型句を呼び出すために、 "eval"という関数を使用することはできません。 Perlには、実際には関数にバインドされていないeval-like bahaviorを持つために私が知っているLispマクロはありません(Perlがlispマクロを持っていれば間違いかもしれません)。
ファイル内で宣言されている最初のパッケージであれば、この動作をパーサーで記述することなく実現できますか?
これは私の電話から書いたので、これはリンクのみの回答です。後でコード例を追加します。 – simbabque
既に大きな助けを借りています:)私は、大規模プロジェクトのダース+スクリプトの半分以上の同じインポートを回避する方法を考えてきました。これまでに私は十分にうまくいったものは見つからなかったので、これをチェックして嬉しいです! – zdim
ああ...これは実際に働いている_ - 想像していることをして、簡単です。ありがとうございました。それは非常に大きなプロジェクトで非常に厄介な問題を解決しました。 – zdim