doブロックのreturn
インスタンスキャッシュするつもりでこういう書き方をしても、doブロック内でreturnすると関数全体からのreturnが先に走ってキャッシュされない
doブロック内でだけearly returnしたいつもりでもハマりそう
code:a.pl
use strict;
use warnings;
use feature 'say';
my $cache;
sub heavy {
return $cache //= do {
say 'not cached';
return 1;
};
}
say heavy();
say heavy();