我正在尝试使用 Java 的 Runtime.exec() 执行 Perl 解释器的副本。但是,它返回了错误代码9
。运行该文件几次后,perl
解释器神秘地开始返回代码 253,而我的命令根本没有任何变化。
代码253
/代码9
是什么意思?谷歌搜索perl
解释器的退出代码一无所获。在哪里可以找到 Perl 解释器的退出代码列表?
请参阅perldoc perlrun:
如果程序在语法上是正确的,它就会被执行。如果程序运行结束而没有碰到
exit()
ordie()
运算符,则提供一个隐式exit(0)
表示成功完成。
如果脚本没有运行,perl 解释器实际上会返回它自己的退出代码。大多数语法错误会导致退出代码 9:
未知功能/不允许的裸字:
perl -e 'use strict; print scalar(localtime); schei;'
美元?= 9
被零除:
perl -e 'use strict; print scalar(localtime); my $s = 1/0;'
美元?= 9
语法错误:
perl -e 'use strict; print scalar(localtime); my $ff; $ff(5;'
美元?= 9
使用模具:
perl -e 'use strict; print scalar(localtime); die "twaeng!"'
美元?= 9
一个未知的模块是我发现 perl 以不同方式退出的唯一一种情况:
perl -e 'use strict; use doof; print scalar(localtime);'
美元?= 2
顺便说一句,我自己仍在寻找 perl 解释器退出代码的完整列表。除了 perl 解释器源之外,任何人都知道在哪里看?
在正常情况下,perl
将返回它运行的程序返回的任何内容。因此,您不能在不知道它正在运行的程序的情况下概括返回值的含义。
Perl 本身没有任何定义的退出代码。除非 perl 解释器以一种非常可怕的方式崩溃,否则退出代码是由正在运行的程序决定的perl
,而不是由perl
它本身决定的。
由于一些运行后错误代码发生了变化;如果您将Java
应用程序作为连续运行的 web 应用程序运行,请检查它是否可能是某种内存泄漏。
perl
您可以通过使用 perl 解释器的选项运行脚本来从各种问题中测试您的脚本-Tw
,对于启用的污染模式和警告,请参阅perlrun以获取有关这些的更多信息。