Een beginnersgids voor het vergelijken van waarden in Perl

Perl-vergelijkingsoperators kunnen soms verwarrend zijn voor nieuwe Perl-programmeurs. De verwarring komt voort uit het feit dat Perl eigenlijk twee sets vergelijkingsoperatoren heeft - een voor het vergelijken van numerieke waarden en een voor het vergelijken van string American Standard Code for Information Interchange (ASCII) -waarden. 

Aangezien vergelijkingsoperatoren meestal worden gebruikt om de logische programmastroom te regelen en belangrijke beslissingen te nemen, kan het gebruik van de verkeerde operator voor de waarde die u test, leiden tot bizarre fouten en uren foutopsporing, als u niet voorzichtig bent.

Vergeet niet te vangen wat er helemaal onderaan deze pagina staat voor enkele last-minute dingen om te onthouden.

Gelijk, niet gelijk

De eenvoudigste en waarschijnlijk meest gebruikte vergelijkingsoperatoren testen om te zien of een waarde gelijk is aan een andere waarde. Als de waarden gelijk zijn, retourneert de test true en als de waarden niet gelijk zijn, retourneert de test false.

Voor het testen van de gelijkheid van twee numerieke waarden, gebruiken we de vergelijkingsoperator ==. Voor het testen van de gelijkheid van twee draad waarden, gebruiken we de vergelijkingsoperator eq (Gelijk).

Hier is een voorbeeld van beide:

if (5 == 5) print "== voor numerieke waarden \ n"; 
if ('moe' eq 'moe') print "eq (EQual) voor stringwaarden \ n";  

Testen op het tegenovergestelde, niet gelijk, lijkt erg op elkaar. Vergeet niet dat deze test zal terugkeren waar als de geteste waarden zijn niet gelijk aan elkaar. Om te zien of twee numerieke waarden zijn niet gelijk aan elkaar, gebruiken we de vergelijkingsoperator !=. Om te zien of twee draad waarden zijn niet gelijk aan elkaar, gebruiken we de vergelijkingsoperator ne (Niet gelijk).

if (5! = 6) print "! = voor numerieke waarden \ n"; 
if ('moe' ne 'curly') print "ne (Niet gelijk) voor stringwaarden \ n";  

Groter dan, groter dan of gelijk aan

Laten we nu eens kijken naar de groter dan vergelijkingsoperatoren. Met deze eerste operator kunt u testen of een waarde groter is dan een andere. Om te zien of twee numerieke waarden groter zijn dan elkaar, we gebruiken de vergelijkingsoperator >. Om te zien of twee draad waarden groter zijn dan elkaar, we gebruiken de vergelijkingsoperator gt (Groter dan).

if (5> 4) print "> voor numerieke waarden \ n"; 
if ('B' gt 'A') print "gt (Groter dan) voor stringwaarden \ n";  

Je kunt ook testen op groter dan of gelijk aan, wat er erg op lijkt. Houd er rekening mee dat deze test zal terugkeren waar als de geteste waarden gelijk zijn aan elkaar, of als de waarde links groter is dan de waarde rechts.

Om te zien of twee numerieke waarden groter dan of gelijk aan elkaar zijn, gebruiken we de vergelijkingsoperator > =. Om te zien of twee draad waarden groter dan of gelijk aan elkaar zijn, gebruiken we de vergelijkingsoperator ge (Groter dan gelijk aan).

if (5> = 5) print "> = voor numerieke waarden \ n"; 
if ('B' ge 'A') print "ge (groter dan gelijk aan) voor stringwaarden \ n";  

Kleiner dan, Kleiner dan of gelijk aan

Er zijn verschillende vergelijkingsoperatoren die u kunt gebruiken om de logische stroom van uw Perl-programma's te bepalen. We hebben al het verschil besproken tussen de operatoren voor de vergelijking van de numerieke Perl en de operatoren voor de vergelijking van de Perl-reeks, wat enige verwarring kan veroorzaken bij nieuwe Perl-programmeurs. We hebben ook geleerd hoe te bepalen of twee waarden gelijk zijn aan of niet gelijk zijn aan elkaar, en we hebben geleerd hoe te bepalen of twee waarden groter dan of gelijk aan elkaar zijn.

Laten we eens kijken naar de minder dan vergelijkingsoperatoren. Met deze eerste operator kunt u testen of er één waarde is minder dan een andere waarde. Om te zien of twee numerieke waarden zijn minder dan elkaar gebruiken we de vergelijkingsoperator <. Om te zien of twee draad waarden zijn minder dan elkaar gebruiken we de vergelijkingsoperator lt (Minder dan).

als (4 < 5)  print "< for numeric values\n"; 
if ('A' lt 'B') print "lt (Less Than) voor stringwaarden \ n";  

Je kunt ook testen op, minder dan of gelijk aan, wat er erg op lijkt. Vergeet niet dat deze test zal terugkeren waar als de geteste waarden gelijk zijn aan elkaar, of als de waarde links lager is dan de waarde rechts. Om te zien of twee numerieke waarden zijn minder dan of gelijk aan elkaar gebruiken we de vergelijkingsoperator <=. Om te zien of twee draad waarden zijn minder dan of gelijk aan elkaar gebruiken we de vergelijkingsoperator le (Minder dan gelijk aan).

 als (5 <= 5)  print "<= for numeric values\n"; 
if ('A' le 'B') print "le (Less-than Equal-to) voor stringwaarden \ n";  

Meer informatie over vergelijkingsoperatoren

Als we het hebben over stringwaarden die gelijk zijn aan elkaar, verwijzen we naar hun ASCII-waarden. De hoofdletters zijn dus technisch minder dan de kleine letters en hoe hoger de letter in het alfabet, hoe hoger de ASCII-waarde.

Zorg ervoor dat u uw ASCII-waarden controleert als u logische beslissingen probeert te nemen op basis van tekenreeksen.