Pr zykładowy zapis |
Nazwa operatora |
Działanie |
$a && $b |
And |
wpisz $a jeśli ma wartość fałsz, inaczej wpisz $b |
$a || $b |
Or |
wpisz $a jeśli ma wartość prawda, inaczej wpisz $b |
! $a |
Not |
prawda gdy $a nie jest prawdą |
$a and $b |
And |
wpisz $a jeśli ma wartość fałsz, inaczej wpisz $b |
$a or $b |
Or |
wpisz $a jeśli ma wartość prawda, inaczej wpisz $b |
not $a |
Not |
prawda gdy $a nie jest prawdą |
Jak widać ten sam efekt można uzyskać stosując zarówno znaki (&&, !) jak i normalne angielskie słowa (and, not). Formę tą łatwo można zrozumieć analizując prosty przykład:
open (KONTAKT, "plik.log") or die "Nie mogę otworzyć pliku: $!\n";
Polecenie to zleca otworzenie pliku o nazwie plik.log. Jeśli operacja ta się powiedzie program bez problemów przejdzie do kolejnej fazy wykonywania poleceń. Jeśli natomiast z jakiegoś powodu nie będzie mógł otworzyć pliku zostanie wypisany komunikat zawarty w cudzysłowach. Na samym końcu komunikatu po dwukropku zostanie wypisany błąd jaki pojawił się przy próbie otwarcia pliku. Zmienna !$ jest jedną ze zmiennych specjalnych i zawiera komunikat o błędzie zwracany przez system operacyjny. Jak widać ważne dla programu operacje umiejscowione są po lewej stronie ekranu a te drugoplanowe po prawej.
Operatory porównania
Operatory te znane są pod nazwą relacyjne. Informują one o wzajemnej relacji dwóch wartości skalarnych, zarówno liczb jak i napisów. Dlatego istnieją dwa odrębne zbiory operatorów relacyjnych: jeden służący do porównywania liczb, a drugi napisów. Przykładowe operatory porównania:
Sposób porównania [Liczby Napisy Działanie
równe |$a == $b |$a eq $b [zwraca prawdę jeśli Sa jest równe Sb
[nierówne $a != $b $a ne $b [zwraca prawdę jeśli Sa nic jest równe Sb
jmniejsze lub równe Sa <= $b $a le $b zwraca prawdę jeśli Sa jest mniejsze lub równe Sb |większe lub równe |$a => $b |$a ge $b |zwraca prawdę jeśli Sa jest większe lub równe Sb |mniejsze niż |$a < $b |$a lt $b [zwraca prawdę jeśli Sajcst mniejsze od Sb
|większe niż |$a > $b |$a gt $b zwraca praw dę jeśli Sa jest większe od Sb