0

我从 Java 运行一个进程来运行 Perl 脚本,如下所示,

Runtime.getRuntime().exec(new String[] {"perl","C:\\Perl\\bin\\try.pl", "uname=test"});

如何在 Perl 脚本中获取数据。我尝试了以下$uname,,,,@uname${uname}

任何人都可以提出任何其他想法吗?

4

1 回答 1

3

您不能像在 Perl 中那样访问命名的命令行参数。使用特殊变量@ARGV 传入参数,您可以直接使用它,也可以使用提供附加功能的模块进行操作。

如果您不关心命名参数,那么如果您有以下 Java 调用:

Runtime.getRuntime().exec(new String[] {"perl","C:\\Perl\\bin\\try.pl", "test"});

那么下面的 Perl 片段应该可以工作:

print "First argument is: $ARGV[0]\n";
print "The argument is, indeed, 'test'!\n" if ($ARGV[0] eq 'test');

另一方面,如果您确实需要命名参数,那么您将需要研究提供此类功能的模块。例如,这个问题的答案建议GetOpt::Long

于 2013-07-26T07:47:57.467 回答