如何包括包含所有必需的Perl模块名称的文件?(How to include a file that

2019-08-02 18:57发布

Perl脚本包含在脚本的开头的所有模块的名称。

例如:

use strict;
use XML::Parser;
use XML::Simple;
use DBI;
use DBD::DB2::Constants;
use POSIX qw( strftime );
use Storable qw(dclone);
use Data::Dumper;
use Carp;

如何保持在另一个文件中的所有模块的名称,包括在主perl脚本文件?

谢谢。

Answer 1:

创建您自己的模块。 但是,如果你在此模块中做包的strftime等将被导入到另一个命名空间。 你可以做痘痘黑客要做到这一点smiple:

MyModules.pm:

use strict;
use XML::Parser;
use XML::Simple;
use DBI;
use DBD::DB2::Constants;
use POSIX qw( strftime );
use Storable qw(dclone);
use Data::Dumper;
use Carp;

注意:没有package在这个.pm的关键字。 您的脚本:

use MyModules;

把这个名.pm到同一目录以脚本或在运行时添加模块搜索路径:

use lib '/my_modules_dir/';
use MyModules;

不建议和使用需要的命令,因为他们不脚本开始进行语法检查。 当然,你可以把它们放入BEGIN块,但我认为它的取巧的办法,一般BEGIN{ require ..}是一样的use

UPD: 池上注意的问题,当你使用这个由很多模块它不工作。 不管问题起动的信息(他想用这种从主脚本),生病添加信息如何从众多模块使用这一点,所以我的朋友可以感觉更好。 添加结束MyModules.pm的:

delete $INC{'MyModules.pm'};
1;


Answer 2:

您可以使用

BEGIN { do 'filename.pl' or die $@ }

见做 。 一定要包括1; 在文件的底部。



Answer 3:

你可能看的工具包模块。



文章来源: How to include a file that contains all the required Perl module names?