【发布时间】:2015-08-12 10:26:32
【问题描述】:
我的意图是从 Parent.pl 脚本调用 Child.pl 脚本
我使用 system() 函数来调用其他脚本。
使用时
system("perl Child.pl $argument");
参数被传递。
但是在使用的时候
system("Child.pl $argument");
参数未通过。
那是因为代码中的任何错误。
我是 perl 脚本的新手。如果我问任何错误,请原谅我。
我使用的是 Windows 7,我的 perl 版本是 v5.8.4
我的 Parent.pl 脚本是
use warnings;
print "Inside Parent Script\n\n";
$var = 10;
print "Calling system without perl prefix\n";
system("Child.pl $var");
print "\nCalling system with perl prefix\n";
system("perl Child.pl $var");
print "\nEnd of Parent Script\n";
exit 0;
我的 Child.pl 脚本是
use warnings;
print "\tInside Child Script\n";
print "\tArgument = $ARGV[0] \n";
print "\tEnd of Child Secipt\n";
exit 0;
我的输出是
Inside Parent Script
Calling system without perl prefix
Inside Child Script
Use of uninitialized value in concatenation (.) or string at C:\Child.pl line 4.
Argument =
End of Child Script
Calling system with perl prefix
Inside Child Script
Argument = 10
End of Child Script
End of Parent Script
似乎在某些 PC 中它可以在没有 perl 前缀的情况下工作。
我正在处理大量不使用 perl 前缀的脚本。
有什么办法可以让这些脚本保持完整,并且仍然让参数通过。
【问题讨论】:
-
请告诉我们您正在使用什么系统?
-
我正在使用 Windows 7 企业版,我的 perl 版本是 v5.8.4
-
好的,你应该重新安装 Perl(ActivePerl 还是 Strawberry?),因为文件关联没有正确设置