2011-10-04 28 views
0

在我不太明白的Perl腳本中出現一些奇怪的行爲。我試圖將我的一些魔術字符串文字變成可以更容易修改的變量。當我使用變量而不是字符串文字時,Perl方法失敗

我在我的子程序中有一個參數叫做$in_feature。現在它的價值僅僅是"in_feature"。我可以打印出來,看起來很好。到目前爲止好...

此代碼失敗,雖然:

if ($in_feature != "" && !$blockModel->is_field($in_feature)) 
{ 
    print "ERROR: was expecting to find a variable in the block model called $in_feature.\n"; 
     return; 
} 

如果我刪除字符串比較和變更方法調用返回字符串字面它按預期工作。

if (!$blockModel->is_field("in_feature")) 
{ 
    print "ERROR: was expecting to find a variable in the block model called $in_feature.\n"; 
     return; 
} 

所以變量是某種方式的字符串,它等於空字符串,並且不能用來代替字符串?!?這是爲什麼?在Perl

回答

8

字符串比較使用和EQ,而不是NE!=和==

更換$in_feature != ""$in_feature ne "",它可能解決您的問題。

+0

謝謝,我認爲就是這樣。 PERL真是太討厭了嘿:( – Coxy

+11

@Coxy,它拼寫爲「Perl」,如果你使用'use warnings',它會大聲警告這個,如你應該的。 – ikegami

相關問題