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;
Run Code Online (Sandbox Code Playgroud)
如何将所有模块名称保存在另一个文件中并将文件包含在主perl脚本中?
谢谢.
您可以使用
BEGIN { do 'filename.pl' or die $@ }
Run Code Online (Sandbox Code Playgroud)
见做.请务必包含1;
在文件的底部.
创建自己的模块.但是,如果你在这个模块中创建包,那么这些strftime
将被导入另一个命名空间.你可以做litle hack来做这个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;
Run Code Online (Sandbox Code Playgroud)
请注意package
,此.pm中没有关键字.你的脚本:
use MyModules;
Run Code Online (Sandbox Code Playgroud)
将此.pm放在带脚本的相同目录中或在运行时添加模块搜索路径:
use lib '/my_modules_dir/';
use MyModules;
Run Code Online (Sandbox Code Playgroud)
建议不要使用do和require命令,因为它们不检查脚本启动时的语法.当然你可以将它们放入BEGIN块,但我认为它的方法BEGIN{ require ..}
很棘手,并且通常是相同的use
UPD:ikegami注意到当你从许多模块中使用它时问题不起作用.无论问题启动者的信息(他想从主脚本中使用它),生病添加信息如何从许多模块中使用它,所以我的朋友可以感觉更好.添加到MyModules.pm结尾:
delete $INC{'MyModules.pm'};
1;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
268 次 |
最近记录: |