Szukaj…


Warunkowe

Perl obsługuje wiele rodzajów instrukcji warunkowych (instrukcji opartych na wynikach boolowskich). Najczęstsze instrukcje warunkowe to if-else, chyba że i trójkowe. given instrukcje są wprowadzane jako konstrukcja przełączająca z języków pochodzących z języka C i są dostępne w wersjach Perl 5.10 i nowszych.

Instrukcje „jeśli”

Podstawowa struktura instrukcji if jest następująca:

if (EXPR) BLOCK
if (EXPR) BLOCK else BLOCK
if (EXPR) BLOCK elsif (EXPR) BLOCK ...
if (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK

W przypadku prostych instrukcji if, if może poprzedzać lub zastępować wykonywany kod.

$number = 7;
if ($number > 4) { print "$number is greater than four!"; }

# Can also be written this way
print "$number is greater than four!" if $number > 4;

Pętle

Perl obsługuje wiele rodzajów konstrukcji pętli: for / foreach, while / do-while i till.

@numbers = 1..42;
for (my $i=0; $i <= $#numbers; $i++) {
    print "$numbers[$i]\n";
}

#Can also be written as
foreach my $num (@numbers) {
    print "$num\n";
}

Pętla while ocenia warunek przed wykonaniem skojarzonego bloku. Czasami blok nigdy nie jest wykonywany. Na przykład poniższy kod nigdy nie zostałby wykonany, jeśli uchwyt pliku $fh był uchwytem pliku pustego pliku lub jeśli został już wyczerpany przed warunkowym.

while (my $line = readline $fh) {
    say $line;
}

do / while i do / until pętli, z drugiej strony, oceny warunkowe po każdym bloku jest wykonywany. Tak, to do / while lub do / until pętla jest zawsze wykonywany co najmniej raz.

my $greeting_count = 0;
do {
    say "Hello";
    $greeting_count++;
} until ( $greeting_count > 1)

# Hello
# Hello


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow