Секция elsif

Время от времени требуется последовательно проверить несколько условий и узнать, какое из них истинно. Для этого можно воспользоваться секцией elsif конструкции if, как в следующем примере:

if ( ! defined $dino) {
print "The value is undef.\n";
} elsif ($dino =~ /^-?\d+\.?$/) {
print "The value is an integer.\n";
} elsif ($dino =~ /^-?\d*\.\d+$/) {
print "The value is a _simple_ floating-point number.\n";
} elsif ($dino eq '') {
print "The value is the empty string.\n";
} else {
print "The value is the string '$dino'.\n";
}

Perl проверяет условные выражения одно за другим. Когда очередная проверка даст положительный результат, выполняется соответствующий блок кода, обработка всей управляющей конструкции на этом завершается1 и управление передается остальной программе. Если все условия ложны, выполняется завершающий блок else. (Конечно, секция else не обязательна, но в данном случае ее стоит включить.) Количество секций elsif не ограничено, но следует помнить, что Perl должен проверить первые 99 условий, прежде чем переходить к 100-му. Если конструкция содержит больше шести-семи elsif, подумайте, нельзя ли сделать то же самое более эффективно. В Perl FAQ (см. man-страницу perlfaq) приведены рекомендации по имитации команд switch/case других языков программирования. Пользователи Perl 5.10 и более поздних версий также могут использовать конструкцию givenwhen. Возможно, вы заметили, что ключевое слово elsif пишется только с одной буквой «e». Если записать его в виде elseif, Perl сообщит о неправильном написании. Почему? Потому что Ларри так решил.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Автоинкремент и автодекремент
Значение автоинкремента
Значение ускоренного логического оператора
Логические операторы
Метки блоков