在 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; }
那么没有任何区别。使用在上下文中最有意义的任何一个。