2014-02-25 36 views

回答

4

它檢查該變量的值是true。在Perl中,一切都是真實的,但以下情況:

  • 0和字符串'0'
  • undef
  • ()(空單)
  • ''(空字符串)

這記錄在perlsyn。它也適用於任何其他類型的價值。您還可以在if條件下放置一個字符串,一個函數調用。行爲總是一樣的。

+0

在標量上下文中評估真值,所以空列表不存在。標量上下文中的'()'評估爲普通的舊'undef',這是false。 (同樣,標量上下文中的空數組爲'0',所以爲false。)另外還有一件事情,您錯過了列表中的其他值,這是錯過了您的列表的 - 重載'bool'返回false的對象。 – tobyink

+0

是的。 '()'的解釋很好,但它不在perlsyn中。我只是重述了那裏所說的。 – simbabque

+0

在perlsyn中的解釋其實很糟糕。看到[這個答案](http://stackoverflow.com/a/5655485/589924) – ikegami

0

這將檢查變量'$ string'是否爲空值

+2

Perl中沒有'null'的概念 – Zaid

+0

@Zaid - *「在Perl中沒有'null'的概念」* The ASCII'NUL'或'null'是'0x00',並且在Perl文檔中引用它,例如[pack](http://perldoc.perl.org/functions/pack.html)的'a'模板是*「具有任意二進制數據的字符串,將被填充爲空。」* – Kenosis