什么是打印机的“die print”?

3
以下是我尝试执行的代码。
$a=0;  
if($a==0){die  print"zero"};  

而我得到的输出如下:

1 at test.pl line 2  
Zero  

我想知道首先打印的是什么,是类似于die打印if语句返回的值吗?任何帮助都将不胜感激。


1
它打印了print "zero"的返回值。 - undefined
2个回答

9

In

die print "zero";

die将使用print"zero";的返回值,即1作为其参数。 因此,您会看到1 at ...消息。

默认情况下,交互程序的STDOUT是行缓冲的,但STDERR是未缓冲的,这就是为什么您会先看到1 at ...(在stderr上),然后才是zero(在stdout上)。 如果您将print"zero"更改为print"zero\n",您将首先看到zero


1
实际上,print函数返回了一个数字1,这个数字会被立即插入到其错误消息中。
控制流永远不会回到if语句。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接