Perl операторите за сравнение понякога могат да бъдат объркващи с новите програмисти на Perl. Объркването произтича от факта, че Perl всъщност има два набора оператори за сравнение - един за сравнение числови стойности и една за сравняване на низ американски стандартен код за обмен на информация (ASCII).
Тъй като операторите за сравнение обикновено се използват за контрол на логическия поток на програмата и вземане на важни решения, използвайки грешен оператор за стойността, която тествате, може да доведе до странни грешки и часове на отстраняване на грешки, ако не сте внимателни.
Не забравяйте да хванете написаното в най-долната част на тази страница за някои неща от последната минута, които да запомните.
Равен, не равен
Най-простият и вероятно най-използваните оператори за сравнение тестват дали дадена стойност е равна на друга. Ако стойностите са равни, тестът връща вярно, а ако стойностите не са равни, тестът връща невярно.
За тестване на равенството на две числов стойности, използваме оператора за сравнение
==. За тестване на равенството на две низ стойности, използваме оператора за сравнение екв (Равни).Ето пример за двете:
ако (5 == 5) {print "== за цифрови стойности \ n"; }
if ('moe' eq 'moe') {print "eq (EQual) за низови стойности \ n"; }
Тестването за обратното, а не равно, е много подобно. Не забравяйте, че този тест ще се върне вярно ако стойностите са тествани не равни един на друг. Да видим дали две числов стойности са не равни една на друга, използваме оператора за сравнение !=. Да видим дали две низ стойности са не равни една на друга, използваме оператора за сравнение NE (Не е равно).
ако (5! = 6) {print "! = за цифрови стойности \ n"; }
if ('moe' ne 'curly') {print "ne (Не е равно) за стойности на низовете \ n"; }
По-голям от, по-голям или равен на
Сега нека разгледаме по-голям от оператори за сравнение. Използвайки този първи оператор, можете да проверите дали една стойност е по-голяма от друга. Да видим дали две числов стойностите са по-големи един от друг, използваме оператора за сравнение >. Да видим дали две низ стойностите са по-големи един от друг, използваме оператора за сравнение GT (По-голям от).
ако (5> 4) {print "> за цифрови стойности \ n"; }
ако ('B' gt 'A') {print "gt (по-голям от) за низови стойности \ n"; }
Можете също да тествате за по-голям или равен на, което изглежда много подобно. Имайте предвид, че този тест ще се върне вярно ако тестваните стойности са равни една на друга или ако стойността вляво е по-голяма от стойността вдясно.
Да видим дали две числов стойностите са по-големи или равни една на друга, използваме оператора за сравнение >=. Да видим дали две низ стойностите са по-големи или равни една на друга, използваме оператора за сравнение GE (По-голям от равен на).
ако (5> = 5) {print "> = за цифрови стойности \ n"; }
ако ('B' ge 'A') {print "ge (по-голям от равен на) за низови стойности \ n"; }
По-малко, по-малко или равно на
Има различни оператори за сравнение, които можете да използвате, за да определите логическия поток на вашите Perl програми. Вече обсъдихме разликата между операторите за сравняване на числови Perl и операторите за сравнение на низове Perl, което може да причини объркване на новите програмисти на Perl. Освен това научихме как да разберем дали две стойности са равни или не са една на друга и научихме как да разберем дали две стойности са по-големи или равни една на друга.
Нека да разгледаме по-малко от оператори за сравнение. Използвайки този първи оператор, можете да проверите дали една стойност е по-малко от друга стойност. Да видим дали две числов стойности са по-малко от взаимно, ние използваме оператора за сравнение <. Да видим дали две низ стойности са по-малко от взаимно, ние използваме оператора за сравнение LT (По-малко от).
ако (4 <5) {print "
if ('A' lt 'B') {print "lt (По-малко от) за низови стойности \ n"; }
Можете също да тествате за, по-малко или равно на, което изглежда много подобно. Не забравяйте, че този тест ще се върне вярно ако тестваните стойности са равни една на друга или ако стойността вляво е по-малка от стойността вдясно. Да видим дали две числов стойности са по-малко или равно на взаимно, ние използваме оператора за сравнение <=. Да видим дали две низ стойности са по-малко или равно на взаимно, ние използваме оператора за сравнение ле (По-малко от равно на).
ако (5 <= 5) {print "<= за числови стойности \ n"; }
ако ('A' le 'B') {print "le (По-малко от равно на) за стойности на низовете \ n"; }
Повече информация за операторите за сравнение
Когато говорим за низови стойности, които са равни една на друга, имаме предвид техните ASCII стойности. И така, главните букви са технически по-малки от малките букви и колкото по-висока е буквата в азбуката, толкова по-висока е стойността на ASCII.
Уверете се, че проверявате вашите стойности на ASCII, ако се опитвате да вземате логични решения въз основа на низове.