Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java perl解释器的状态代码是什么意思?_Java_Perl_Exec_Exit Code - Fatal编程技术网

Java perl解释器的状态代码是什么意思?

Java perl解释器的状态代码是什么意思?,java,perl,exec,exit-code,Java,Perl,Exec,Exit Code,我试图使用Java的Runtime.exec()执行Perl解释器的副本。但是,它返回了错误代码9。在运行该文件几次之后,perl解释器神秘地开始返回代码253,而我的命令中没有任何更改 代码253/code9是什么意思?谷歌搜索perl解释器的退出代码,结果一无所获。在哪里可以找到Perl解释器的退出代码列表?在正常情况下,Perl将返回它运行的程序返回的任何内容。因此,如果不知道返回值正在运行的程序,就无法概括返回值的含义。Perl本身没有任何定义的退出代码;除非perl解释器以非常可怕的方

我试图使用Java的Runtime.exec()执行Perl解释器的副本。但是,它返回了错误代码
9
。在运行该文件几次之后,
perl
解释器神秘地开始返回代码253,而我的命令中没有任何更改


代码
253
/code
9
是什么意思?谷歌搜索
perl
解释器的退出代码,结果一无所获。在哪里可以找到Perl解释器的退出代码列表?

在正常情况下,
Perl
将返回它运行的程序返回的任何内容。因此,如果不知道返回值正在运行的程序,就无法概括返回值的含义。

Perl本身没有任何定义的退出代码;除非perl解释器以非常可怕的方式崩溃,否则退出代码由运行的程序决定,而不是由perl本身决定。

请参阅:

如果程序语法正确,则执行该程序。如果程序在未命中
exit()
die()
运算符的情况下结束运行,则会提供一个隐式
exit(0)
,以指示成功完成


因此,您正在运行的程序必须通过或等效程序以某种方式指定这些退出值。

,因为错误代码在一些运行后发生了更改;如果您将
Java
应用程序作为持续运行的webapp运行,请检查它是否可能是某种内存泄漏


通过使用perl解释器的
-Tw
选项运行脚本,可以测试
perl
脚本的各种问题。有关启用的污染模式和警告,请参阅以获取有关这些问题的更多信息。

如果脚本未运行,perl解释器实际上会返回自己的退出代码。大多数语法错误导致退出代码9:

未知功能/不允许的裸字:

perl -e 'use strict; print scalar(localtime); schei;'
$?=九,

除零:

perl -e 'use strict; print scalar(localtime); my $s = 1/0;'
$?=九,

语法错误:

perl -e 'use strict; print scalar(localtime); my $ff; $ff(5;'
$?=九,

使用模具:

perl -e 'use strict; print scalar(localtime); die "twaeng!"'
$?=九,

未知模块是我发现perl以不同方式退出的唯一情况:

perl -e 'use strict; use doof; print scalar(localtime);'
$?=二,


顺便说一句,我自己还在寻找perl解释器退出代码的综合列表。除了perl解释器源代码之外,还有人知道应该在哪里查找吗?

perl二进制代码给出了一个返回值,但它是二进制代码还是应用程序?也就是说,我可以编写一个包含
exit(253)
的perl程序,这将是进程的返回值。接近255的exit值通常是由shell或其他包装器造成的。253是您的shell告诉您“找不到perl”或“资源不足,无法分叉”之类的信息吗?因此,代码253是由于程序找不到文件路径造成的。谢谢你的帮助。我读到我必须将返回值右移8位才能得到脚本的返回值?它们不是并排输出它们的返回值,每个占一个字节吗?你能解释一下为什么污染会有助于解决这个问题吗?perldoc for有一些关于退出代码的信息,但建议你不要依赖退出代码,除非它是非零的。我认为这是最全面的答案。谢谢你,埃尔伍德