在Perl中,之间存在任何有意义的区别:
return $result unless ($exist_condition);
和
unless ($exist_condition) return $result;
答案 0 :(得分:8)
第二个是语法错误。我认为你的意思是
# 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
在实践中,这可能永远不会出现,所以差异只是风格问题。
答案 1 :(得分:1)
如目前所写,第二个是语法错误。
如果更改为:
unless ($exist_condition) { return $result; }
然后没有任何区别。使用在上下文中最有意义的那个。