Есть еще одна причина, по которой вы могли бы рассмотреть:
Последнее делает больше, чем просто циклическое управление.
sub hello {
my ( $arg ) = @_;
scope: {
foo();
bar();
last if $arg > 4;
baz();
quux();
}
}
Последний как таковой - это общий механизм управления потоком, не ограниченный контурами. Хотя, конечно, вы можете обобщить вышесказанное как цикл, который выполняется не более 1 раза, но отсутствие цикла для меня означает «Прерывание? Из чего мы вырываемся?»
Вместо этого я думаю о "last
" как о "Прыжке в положение последней скобки", что для этой цели более семантически разумно.