好吧我正在改写这个以详细说明。我对Perl& amp;编程所以请耐心等待。基本上,我想知道当它们来自同一目录时,如何在主.pl文件中运行一个或多个文件(我猜模块?)。我的代码可以很好地将它们全部作为子程序插入到我的文件底部,但如果我将子程序拉出并将它们转换为模块则不行。
答案 0 :(得分:1)
这里有几个步骤可以帮助您入门。这会将一些子导出到包MyModule
。
首先在与主程序相同的目录中创建MyModule.pm
。例如:
package MyModule;
use warnings; use strict;
sub foo {
my $p = shift;
print "foo called with param: $p\n";
bar();
}
sub bar {
print "bar called\n";
}
1; # don't delete this line
然后从主程序加载并调用此包中的subs:
#/usr/bin/perl
use warnings; use strict;
use File::Basename qw(dirname);
use lib dirname(__FILE__); # prepend source directory to the include path
use MyModule;
MyModule::foo(42);
语句use lib dirname(__FILE__)
正在将主程序的源目录添加到模块包含路径。
答案 1 :(得分:1)
我有一个库文件,里面装满了我制作的所有子程序,我称之为util.pl.让我们说它在$ HOME / perl / lib / util.pl中。
现在我在$ HOME / perl / project1 / myscript.pl
中有一个perl脚本在myscript.pl中,在顶部我输入:require'$ HOME / perl / lib / util.pl';
现在我可以在myscript.pl中调用util.pl中的任何子例程。例如,undupespace()在util.pl中。在myscript.pl中我可以称之为:$ s = undupespace($ s);
安装模块后,我把它放在myscript.pl的顶部:使用File :: Copy;
这就是你想要的OP吗?