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

fut*_*te7 4 java perl exec exit-code

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

代码253/代码9是什么意思?谷歌搜索perl口译员的退出代码没有任何结果.在哪里可以找到Perl解释器的退出代码列表?

Sin*_*nür 7

perldoc perlrun:

如果程序在语法上是正确的,则执行它.如果程序在没有命中exit()die()运算符的情况下运行结束,exit(0)则提供隐式指示成功完成.

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


elw*_*ood 6

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

未知函数/不允许的裸字:

perl -e 'use strict; print scalar(localtime); schei;'
Run Code Online (Sandbox Code Playgroud)

$?= 9

被零除:

perl -e 'use strict; print scalar(localtime); my $s = 1/0;'
Run Code Online (Sandbox Code Playgroud)

$?= 9

语法错误:

perl -e 'use strict; print scalar(localtime); my $ff; $ff(5;'
Run Code Online (Sandbox Code Playgroud)

$?= 9

使用模具:

perl -e 'use strict; print scalar(localtime); die "twaeng!"'
Run Code Online (Sandbox Code Playgroud)

$?= 9

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

perl -e 'use strict; use doof; print scalar(localtime);'
Run Code Online (Sandbox Code Playgroud)

$?= 2

顺便说一句,我仍在寻找 Perl 解释器退出代码的完整列表。除了 Perl 解释器源之外,有人知道去哪里看吗?