0
我经常在许多脚本中使用以下几行导入相同的模块。有没有办法在一行中做到这一点?快捷方式导入模块?
use WWW::Mechanize;
use WWW::TreeBuilder::XPath;
use feature 'say';
我经常在许多脚本中使用以下几行导入相同的模块。有没有办法在一行中做到这一点?快捷方式导入模块?
use WWW::Mechanize;
use WWW::TreeBuilder::XPath;
use feature 'say';
我所做的就是把所有这些自己的模块中,说MyProject::Policy
,然后简单地use MyProject::Policy;
。我从common::sense得到了这个想法。
使用Import::Into,我得到的是这样的:
package MyProject::Policy;
use strict;
use warnings;
use Import::Into();
use WWW::Mechanize();
use WWW::TreeBuilder::XPath();
sub import {
my $caller = caller;
feature->import::into($caller, 'say');
strict->import::into($caller);
warnings->import::into($caller);
}
1;
(你甚至不需要导入::进入了,因为他们不出口任何你所提供的两个模块。)
现在你可以只需use
这个模块,并获得你需要加载的所有模块,以及你项目要求的所有导入。
另外[Perl导入到我所有的软件包?](http://stackoverflow.com/q/40953539)和[如何导出模块列表与我自己的模块?](http://stackoverflow.com/q/30814892),其中包含相关问题的完整列表。 – ThisSuitIsBlackNot
我第二次从ikegami和Tanktalus的答案得到'Import :: Into'推荐。请参阅[本文](http://stackoverflow.com/a/39568422/4653379)中的另一个示例,了解如何导入除编译指示之外的模块以及指向更多博客的链接。 – zdim
可能重复[如何使用我自己的模块导出模块列表?](http://stackoverflow.com/q/30814892/2173773) –