我有一个 perl 脚本generator.pl
,它定义了一些例程,例如:
sub a($) {
...
print FILE "$_[0]";
...
}
...
sub b($$) {
...
print FILE "$_[0], $_[1]";
...
}
...
$subsfile = $ARGV[0] . "/subs.pl";
$generatedfile = $ARGV[0] . "/generated.file";
open FILE, '>>', "$generatedfile" or die "error trying to append: $!";
do "$subsfile";
close FILE;
让我们假设,例如subs.pl
是这样的:
a(1);
a(x);
b(1-2, z);
b(1-x, i);
b(y-z, j);
我这样称呼generator script
:
C:\Users\Me>perl generator.pl "D:/another/path"
结果是D:/another/path/generated.file
创建但它包含 0 个字节。"print $@;"
之后打印do statement
,我得到:
Transliteration pattern not terminated at...
如果我尝试使用subs.pl
每个实际参数双引号来调用脚本
a("1");
a("x");
b("1-2", "z");
b("1-x", "i");
...
有用。
如何在不使用双引号的情况下使事情正常进行?