2017-02-09 89 views
0

我经常在许多脚本中使用以下几行导入相同的模块。有没有办法在一行中做到这一点?快捷方式导入模块?

use WWW::Mechanize; 
use WWW::TreeBuilder::XPath; 
use feature 'say'; 
+0

另外[Perl导入到我所有的软件包?](http://stackoverflow.com/q/40953539)和[如何导出模块列表与我自己的模块?](http://stackoverflow.com/q/30814892),其中包含相关问题的完整列表。 – ThisSuitIsBlackNot

+0

我第二次从ikegami和Tanktalus的答案得到'Import :: Into'推荐。请参阅[本文](http://stackoverflow.com/a/39568422/4653379)中的另一个示例,了解如何导入除编译指示之外的模块以及指向更多博客的链接。 – zdim

+0

可能重复[如何使用我自己的模块导出模块列表?](http://stackoverflow.com/q/30814892/2173773) –

回答

4

我所做的就是把所有这些自己的模块中,说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这个模块,并获得你需要加载的所有模块,以及你项目要求的所有导入。