perl脚本的状态从bash脚本运行

据我所知,我们可以使用$? 得到我们执行的命令的结果,并且如果程序员保持约定,它将返回一个非零的错误结果和一个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 

所以:

  • 从0(或没有)的perl脚本退出shell将是true的。
  • 从(0)以外的(字节)值的perl脚本退出将在shell和$? 会给你退出的价值。
  • die perl脚本退出将在shell和$?false $? 将是255(在我的情况 – 我检查了它)。