据我所知,我们可以使用$?
得到我们执行的命令的结果,并且如果程序员保持约定,它将返回一个非零的错误结果和一个0的结果。
但是当我们运行perl脚本呢?
我是新的Perl,但我认为,Perl脚本返回1
如果他们是模块的一部分,否则他们不会返回任何东西。
那么我怎么知道我运行的perl脚本发生了什么?
从shell运行Perl脚本的行为是一样的。 有了test.pl
:
#!/usr/bin/env perl exit(0); # or just exit
运行:
./test.pl && echo "OK" || echo $? OK
有
#!/usr/bin/env perl exit(123);
运行:
./test.pl && echo "OK" || echo $? 123
有
#!/usr/bin/env perl die;
运行:
./test.pl && echo "OK" || echo $? Died at ./test.pl line 2. 255
所以:
true
的。 $?
会给你退出的价值。 die
perl脚本退出将在shell和$?
是false
$?
将是255(在我的情况 – 我检查了它)。