List::Util::max
多くのことを行う大規模なプログラムの途中など、便利なユーティリティ関数が必要になることがあります。だから私がするなら
use List::Util 'max';
プログラムの先頭で、そのシンボルに行き詰まり、名前空間全体を汚染しています。必要なのは 1 つのサブルーチンだけであるにもかかわらずです。
そのため、代わりに別のパターンを試すことを考えていました。
use List::Util ();
# a whole bunch of stuff later...
sub blah {
List::Util->import( 'max' );
$blah = max @foobar;
...
}
ただし、これには 2 つの問題があります。1 つは、ブロックの最後で自動的にインポートを解除しないことです (drat) unimport
。
もう 1 つの問題は、明らかにプロトタイプが正しく適用されないことmax( @foobar )
です。
ブロックのシンボルを一時的にインポートする簡単な方法はありますか?ブロックの最後でシンボルを自動的に削除し、プロトタイプを正しく処理する方法はありますか?