Поиск…


Conditionals

Perl поддерживает множество видов условных операторов (операторов, базирующихся на логических результатах). Наиболее распространенными условными утверждениями являются if-else, if и trernary statements. given операторы вводятся в виде коммутационной конструкции из C-производных языков и доступны в версиях Perl 5.10 и выше.

If-Else Statementments

Базовая структура if-утверждения выглядит так:

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

Для простых if-утверждений if может предшествовать или преуспеть в выполнении кода.

$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;

Loops

Perl поддерживает множество типов конструкций циклов: for / foreach, while / do-while и до.

@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";
}

Цикл while вычисляет условное выражение перед выполнением соответствующего блока. Таким образом, иногда блок никогда не выполняется. Например, следующий код никогда не будет выполняться, если filehandle $fh был файловым дескриптором для пустого файла, или если он был уже исчерпан до условного.

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

С другой стороны, циклы do / while и do / until оценивают условное значение после каждого выполнения блока. Таким образом, цикл do / while или do / until всегда выполняется хотя бы один раз.

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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow