Ein Leitfaden für Anfänger zum Vergleichen von Werten in Perl

Perl-Vergleichsoperatoren können manchmal für neue Perl-Programmierer verwirrend sein. Die Verwirrung rührt von der Tatsache her, dass Perl tatsächlich zwei Sätze von Vergleichsoperatoren hat - einen zum Vergleichen von numerischen Werten und einen zum Vergleichen von ASCII-Werten (American Standard Code for Information Interchange). 

Da Vergleichsoperatoren normalerweise verwendet werden, um den logischen Programmfluss zu steuern und wichtige Entscheidungen zu treffen, kann die Verwendung des falschen Operators für den zu testenden Wert zu bizarren Fehlern und stundenlangem Debuggen führen, wenn Sie nicht vorsichtig sind.

Vergessen Sie nicht, das zu lesen, was ganz unten auf dieser Seite steht, damit Sie sich in letzter Minute ein paar Dinge merken können.

Gleich, nicht gleich

Die einfachsten und wahrscheinlich am häufigsten verwendeten Vergleichsoperatoren testen, ob ein Wert einem anderen Wert entspricht. Wenn die Werte gleich sind, gibt der Test true zurück, und wenn die Werte nicht gleich sind, gibt der Test false zurück.

Zum Testen der Gleichheit von zwei numerisch Werte verwenden wir den Vergleichsoperator ==. Zum Testen der Gleichheit von zwei Zeichenfolge Werte verwenden wir den Vergleichsoperator Gl (Gleich).

Hier ist ein Beispiel für beides:

if (5 == 5) print "== for numeric values ​​\ n"; 
if ('moe' eq 'moe') print "eq (EQual) für Zeichenkettenwerte \ n";  

Testen für das Gegenteil, nicht gleich, ist sehr ähnlich. Denken Sie daran, dass dieser Test zurückkehren wird wahr wenn die getesteten Werte sind nicht gleich zueinander. Um zu sehen, ob zwei numerisch Werte sind nicht gleich verwenden wir den Vergleichsoperator !=. Um zu sehen, ob zwei Zeichenfolge Werte sind nicht gleich verwenden wir den Vergleichsoperator ne (Nicht gleich).

if (5! = 6) print "! = für numerische Werte \ n"; 
if ('moe' ne 'curly') print "ne (nicht gleich) für Zeichenkettenwerte \ n";  

Größer als, größer als oder gleich

Nun schauen wir uns die an größer als Vergleichsoperatoren. Mit diesem ersten Operator können Sie testen, ob ein Wert größer als ein anderer Wert ist. Um zu sehen, ob zwei numerisch Werte sind größer als einander, verwenden wir den Vergleichsoperator >. Um zu sehen, ob zwei Zeichenfolge Werte sind größer als einander, verwenden wir den Vergleichsoperator gt (Größer als).

if (5> 4) print "> for numeric values ​​\ n"; 
if ('B' gt 'A') print "gt (größer als) für Zeichenkettenwerte \ n";  

Sie können auch für testen größer als oder gleich wie, das sieht sehr ähnlich aus. Denken Sie daran, dass dieser Test zurückkehren wird wahr Wenn die getesteten Werte gleich sind oder wenn der Wert links größer als der Wert rechts ist.

Um zu sehen, ob zwei numerisch Werte größer oder gleich sind, verwenden wir den Vergleichsoperator > =. Um zu sehen, ob zwei Zeichenfolge Werte größer oder gleich sind, verwenden wir den Vergleichsoperator ge (Größer als gleich).

if (5> = 5) print "> = für numerische Werte \ n"; 
if ('B' ge 'A') print "ge (größer als gleich) für Zeichenkettenwerte \ n";  

Weniger als, weniger als oder gleich

Es gibt eine Vielzahl von Vergleichsoperatoren, mit denen Sie den logischen Ablauf Ihrer Perl-Programme bestimmen können. Wir haben bereits den Unterschied zwischen den Vergleichsoperatoren für numerische Perl-Zeichenfolgen und den Vergleichsoperatoren für Perl-Zeichenfolgen erörtert, was bei neuen Perl-Programmierern zu Verwirrung führen kann. Wir haben auch gelernt, wie man erkennt, ob zwei Werte gleich oder ungleich sind, und wie man erkennt, ob zwei Werte größer oder gleich sind.

Schauen wir uns das an weniger als Vergleichsoperatoren. Mit diesem ersten Operator können Sie testen, ob ein Wert vorhanden ist weniger als ein anderer Wert. Um zu sehen, ob zwei numerisch Werte sind weniger als einander verwenden wir den Vergleichsoperator <. Um zu sehen, ob zwei Zeichenfolge Werte sind weniger als einander verwenden wir den Vergleichsoperator lt (Weniger als).

wenn (4 < 5)  print "< for numeric values\n"; 
if ('A' lt 'B') print "lt (Less Than) für Zeichenkettenwerte \ n";  

Sie können auch für testen, weniger als oder gleich, das sieht sehr ähnlich aus. Denken Sie daran, dass dieser Test zurückkehren wird wahr Wenn die getesteten Werte gleich sind oder wenn der Wert auf der linken Seite kleiner als der Wert auf der rechten Seite ist. Um zu sehen, ob zwei numerisch Werte sind weniger als oder gleich einander verwenden wir den Vergleichsoperator <=. Um zu sehen, ob zwei Zeichenfolge Werte sind weniger als oder gleich einander verwenden wir den Vergleichsoperator le (Kleiner als gleich).

 wenn (5 <= 5)  print "<= for numeric values\n"; 
if ('A' le 'B') print "le (Less-than Equal-to) für Zeichenkettenwerte \ n";  

Weitere Informationen zu Vergleichsoperatoren

Wenn wir davon sprechen, dass Zeichenfolgenwerte gleich sind, beziehen wir uns auf deren ASCII-Werte. Die Großbuchstaben sind also technisch weniger als die Kleinbuchstaben, und je höher der Buchstabe im Alphabet ist, desto höher ist der ASCII-Wert.

Stellen Sie sicher, dass Sie Ihre ASCII-Werte überprüfen, wenn Sie versuchen, logische Entscheidungen auf der Grundlage von Zeichenfolgen zu treffen.