是否可以包含/获取另一个perl脚本,或将其作为“sub”启动? 这有效,但看起来很难看:
test2.pl:
print "I'm in test2.pl; args: @ARGV\n";
test.pl:
#!/usr/bin/perl
use File::Temp qw/tempdir/;
use File::Copy qw/copy/;
my $tmplib;
use lib ($tmplib = tempdir()) . (
copy("./test2.pl", "$tmplib/test2.pm") ? "" : (die "$!")
);
use test2;
X
$ ./test.pl a b c
I'm in test2.pl; args: a b c
答案 0 :(得分:5)
听起来你想要do
operator,虽然听起来也很糟糕。
这就是文档所说的内容。
do EXPR Uses the value of EXPR as a filename and executes the contents of the file as a Perl script.
do 'stat.pl';
is just like
eval `cat stat.pl`;
答案 1 :(得分:1)
您可以使用do
在同一个解释器中运行另一个Perl脚本:
do 'test2.pl';
这将重用外部脚本中的命令行参数。要传递不同的参数,您可以在本地覆盖@ARGV
,例如:
{
local @ARGV = qw(par1 par2 par3);
do 'test2.pl';
}