Perl で非ループなブロックで last を使う
if
if
ブロックを途中で抜けたいときにたまに使うことがありました。
if {{ # do something last if $error; # do something }}
{{
にしているのがミソで、if {}
の内側の {}
がブロックということです。
eval
eval
は last
で抜けられないのですが、同様のことができます。
eval {{ # do something last if $complete; # do something }}; if ($@) { die $@; }
(追記) return の方がシンプルなので、return でよさそうです。
eval { # do something return if $complete; # do something }; if ($@) { die $@; }