2014-03-19 20 views
2

以下是我試圖執行印模是什麼?

$a=0; 
if($a==0){die print"zero"}; 

代碼和我得到的輸出如下

1 at test.pl line 2 
Zero 

我想知道什麼是1首先被印刷,是它像模具是印刷if語句返回的值?任何幫助將被認爲是

+1

它打印'print「零」'的返回值。 – hobbs

+1

通常情況下,你不會在'die'中使用'print'。 '死「零」'就足夠了。 – toolic

回答

8

die print "zero"; 

die將使用的print "zero";返回值,這是1,作爲其參數。所以你看到了1 at ...消息。

默認情況下,互動節目的STDOUT是行緩衝,但STDERR是無緩衝,這就是爲什麼你的1 at ...(stderr上)第一,和zero(stdout上)在後面看到。如果您將print "zero"更改爲print "zero\n",則會看到zero排在第一位。

1

實際上,打印函數返回了一個1,它立即插入到它的錯誤消息中。

控制從不返回到if stmt。