В Perl не существует какая-либо значимая разница между:разницы между, если() вернуться ... и вернуться ... если()
return $result unless ($exist_condition);
и
unless ($exist_condition) return $result;
В Perl не существует какая-либо значимая разница между:разницы между, если() вернуться ... и вернуться ... если()
return $result unless ($exist_condition);
и
unless ($exist_condition) return $result;
Вторая ошибка синтаксиса. Я полагаю, вы имели в виду
# unless statement modifier
return $result unless $exist_condition;
и
# unless statement
unless ($exist_condition) { return $result; }
Они практически одинаковы. Одно отличие состоит в том, что оператор unless
создает область видимости (фактически два), а модификатор оператора unless
- нет.
>perl -E"my $x = 'abc'; unless (my $x = 'xyz') { return; } say $x;"
abc
>perl -E"my $x = 'abc'; return unless my $x = 'xyz'; say $x;"
xyz
На практике это, вероятно, никогда не придет, поэтому разница - это всего лишь вопрос стиля.
Как написано в настоящее время, вторая - синтаксическая ошибка.
Если изменено на:
unless ($exist_condition) { return $result; }
, то нет никакой разницы. Используйте то, что имеет смысл в контексте.