嗨我正在寫一個Perl腳本來完成一些任務。在我的腳本中,我使用一個if循環來比較兩個字符串,如下所示。'='正在代替'eq'
if($feed_type eq "SE"){
...........}
上面的代碼沒有給我任何警告,但輸出不像我預期的那樣。 而不是'eq'
如果我使用'='
我收到警告說expectng '==' but '=' is present
。但我獲得了預期的產出。 理想的字符串比較我必須使用'eq'
和數字'=='
。在這種情況下,它不起作用。任何人都可以弄清楚這裏有什麼問題?
更多信息:
這if
迴路存在於子程序。 $feed_type
是該子程序的輸入。我正在讀取輸入如下:
my [email protected]_;
問題已修復。我只是改變FEED_TYPE的assignemet聲明如下
my $feed_type=$_[0];
,它的讀取值SE
和代碼工作。 但我仍然不知道爲什麼my $feed_type=$_[0];
沒有工作。
我們不禁不知道'$ feed_type'裏面有什麼。在你展示的那一行之前打印一下,看一看。我最好的猜測是它包含一個換行符,因此'eq'不匹配。如果你使用'='它將_assign_'「SE」'賦給'$ feed_type',並且該操作返回一個真值,所以Perl將執行then-block。 – simbabque
@simbabque:我正在使用下面的命令爲SE分配$ feedtype。 my $ feed_type =「SE」 – nithin
這是什麼新行字符?由於我是perl的新手,對此我不太瞭解。 – nithin