Instrukcja if jest najważniejszą strukturą warunkową w Perlu. Składnia jest taka jak pokazano niżej: if (wyrażenie logiczne) { instrukcje

Jeśli wyrażenie logiczne jest prawdziwe, instrukcje zawarte między nawiasami klamrowymi zostaną wykonane. Wyrażenie logiczne może zawierać dowolne operatory porównania opisane wcześniej. Może także zawierać operatory logiczne. Na przykład:

if (($x 0)&&($x < 10))){ print "x jest mniejsze niż -10 lub jest ściśle zawarte między 0 a 10.\n";

Instrukcje warunkowe mogą także zostać rozszerzone poprzez struktury elsif i else:

if (wyrażenie logiczne 1) { instrukcje 1 } elsif (wyrażenie logiczne 2) { instrukcje 2 } else { instrukcje 3

Działa to następująco. Program po kolei sprawdza wszystkie wyrażenia logiczne. Jeżeli któreś z nich zwróci wartość prawdziwą zostaną wykonane instrukcje zawarte w odpowiednim bloku po czym program wyjdzie z instrukcji warunkowej if. Jeżeli wszystkie wyrażenia zwrócą wartość fałszywą zostanie wykonany blok else.

$x = 5; if ($x > 10) { print "$x jest większe od 10\n"; } elsif ($x > 2) { print "$x jest większe od 2\n"; } elsif ($x == 5) { print "$x jest równe 5\n"; } else { print 'Nie wiem ile wynosi $x', "\n";

Powyższy program wyświetli napis "5 jest większe od 2" i zakończy działanie. Dzieje się tak dlatego, że perla nie obchodzi czy wyrażenia dalej też spełniają warunek.

Uwaga! W przeciwieństwie np. do języka C w Perlu instrukcja nie może występować bezpośrednio po warunku - musi znajdować się wewnątrz nawiasów klamrowych. Na przykład poniższy kod zostanie uznany za nieprawidłowy:

if ($x < -10) print "x jest mniejsze niż -10"; # blad!

Można też użyć zamiast if słowa kluczowego unless - znaczy tyle, co if z zaprzeczeniem. Tak więc kod

unless (wyrażenie logiczne) { instrukcja

jest równoważny

if ( !(wyrażenie logiczne) ) { instrukcja

Po unless można oczywiście używać elsif i else tak jak w normalnym if.

Spróbuj napisać program, który pobiera jedną liczbę od użytkownika i mówi czy jest ona parzysta. podpowiedź: skorzystaj z operatora "%".