2014-09-23 50 views
3

我新的Perl和我試圖找到兩個片段之間的區別:的Perl:差異代碼

$string && $string eq 'foo' 
$string eq 'foo' 

我試了幾個條件,但我無法找到的差異。有人可以幫助我找出差異嗎?

+1

顯示關於如何使用此代碼的更多內容。 – toolic 2014-09-23 13:38:50

回答

12

一個區別是,在第二線可能會產生一個警告信息(使用use warnings;時)如果變量從未被分配一個值:

use warnings; 
use strict; 

my $string; 

if ($string && $string eq 'foo') { 
    print "true1\n"; 
} 
else { 
    print "false1\n"; 
} 

if ($string eq 'foo') { # Get warning 
    print "true2\n"; 
} 
else { 
    print "false2\n"; 
} 

警告消息是:

+3

謝謝,我沒有考慮'嚴格使用'和'使用警告' – 2014-09-23 13:49:47

+3

總是考慮使用'strict'和'warnings'。我認爲,我的意思是承諾。 :-) – mwp 2014-09-23 21:11:34