Looking for perl Keywords? Try Ask4Keywords

Perl LanguageRichtig und falsch


Syntax

  • undef # False
  • '' # Definiert, Falsch
  • 0 # definiert, hat Länge, falsch
  • '0' # Definiert, hat Länge, ist falsch

Bemerkungen

Perl hat keinen booleschen Datentyp und auch keine true und false Schlüsselwörter wie viele andere Sprachen. Jeder skalare Wert wird jedoch als wahr oder falsch ausgewertet, wenn er in einem booleschen Kontext ausgewertet wird (z. B. die Bedingung in einer if-Anweisung oder einer while-Schleife).

Die folgenden Werte werden als falsch betrachtet:

  • '' , die leere Zeichenfolge. Dies ist, was die integrierten Vergleichsoperatoren zurückgeben (zB 0 == 1 ).
  • 0 , die Zahl 0, auch wenn Sie es als 000 oder 0,0 schreiben
  • '0' , die Zeichenfolge, die eine einzige 0-Ziffer enthält
  • undef , der undefinierte Wert
  • Objekte, die Überladen verwenden , um in falschen Werten zu nummerieren / stringify zu werden, wie z. B. JSON::false

Alle anderen Werte sind wahr:

  • jede Zahl ungleich Null wie 1 , 3.14 , 'NaN' oder 'Inf'
  • jede Zeichenfolge, die numerisch 0 ist, aber nicht wörtlich die Zeichenfolge '0' , wie '00' , '0e0' , "0\n" und "abc" .
    Wenn Sie absichtlich einen echten numerischen 0-Wert zurückgeben, ziehen Sie '0E0' (von bekannten Modulen verwendet) oder '0 but true' (von Perl-Funktionen verwendet) vor.
  • jede andere Zeichenfolge, die nicht leer ist, wie ' ' , 'false'
  • alle Referenzen, auch wenn sie auf falsche Werte verweisen, wie \'' , [] oder {}
  • ein Array oder ein Hash mit falschen Werten

Die folgenden Operatoren werden im Allgemeinen behandelt, um einen Booleschen Wert im skalaren Kontext zurückzugeben:

  • @a zurück, ob das Array leer ist oder nicht

  • %h zurück, ob der Hash leer ist oder nicht

  • grep zurück, ob übereinstimmende Elemente gefunden wurden oder nicht

  • @a = LIST und (LIST) = LIST zurück, ob die @a = LIST der rechten Seite Skalare erzeugt hat oder nicht

Richtig und falsch Verwandte Beispiele