В любой конструкции if-elsif-else вы всегда выполняете только первую ветвь, условие которой истинно. Как только эта ветвь выполняется, программа запускается после всего if-elsif-else.
Если вы хотите что-то сделать с несколькими возможными ветвями, вы можете создать свой собственный синтаксис, подобный регистру, с несколькими блоками if
. В Perl 5.10 существует конструкция given-when
, но она ретроградно перешла в экспериментальный статус и может быть удалена из языка.
Что касается написания elsif
, то здесь есть несколько факторов.
В C вы пишете
if( ... ) {
... }
else if ( ... ) {
Это иногда вызывает проблему "висящего другого". Если вы начали, но не закончили вставку if-else if
прямо перед другим, но отличным, if
, вы объединили их через висячее другое. Ларри Уоллу это не понравилось, поэтому он объединил «else if» в одно слово «elseif». Однако Ларри это показалось странным, поскольку правило «я до е, кроме с, ...» исправил это, убрав «е», чтобы сделать его просто «эльсиф».