以下是我尝试执行的代码
$a=0;
if($a==0){die print"zero"};
我输出如下
1 at test.pl line 2
Zero
我想知道首先打印的1
是什么,是不是像die这样打印if语句返回的值?任何帮助都是适当的
答案 0 :(得分:8)
在
die print "zero";
die
将使用print "zero";
的返回值1
作为其参数。所以你看到了1 at ...
消息。
默认情况下,交互式程序的STDOUT
是行缓冲的,但STDERR
是无缓冲的,这就是为什么你首先看到1 at ...
(在stderr上)和{{1} (稍后在stdout上)。如果您将zero
更改为print "zero"
,您会看到print "zero\n"
排在第一位。
答案 1 :(得分:1)
实际上,print函数返回1,它会立即插入到错误消息中。
Control永远不会返回到if stmt。