有时我需要一个有用的实用函数,比如List::Util::max
在一个做很多事情的大程序中间。所以如果我这样做
use List::Util 'max';
在我的程序顶部,我被那个符号卡住了,污染了我的整个命名空间,尽管我只在一个子例程中需要它。
所以我一直在考虑尝试不同的模式,而不是:
use List::Util ();
# a whole bunch of stuff later...
sub blah {
List::Util->import( 'max' );
$blah = max @foobar;
...
}
不过,这有两个问题。一方面,它不会在块的末尾自动取消导入(drat)。我必须使用unimport
.
另一个问题是显然原型没有得到正确应用,所以我不得不说max( @foobar )
而不是更漂亮的无括号版本。
有没有一种简单的方法可以临时导入块的符号,这会自动使它们在块的末尾消失,并且还能正确处理原型?