Test::Moreのsubtestのテストはどう書くのが一番きれいなのか コードを見る限り、ガードオブジェクト使うとteardown部分は気が楽ですよ。以下のような使い方をすればガードオブジェクトはスコープを抜けた瞬間に必ず実行されるのでteardownのタイミングなんて気にする必要さえない。 use Scope::Guard; subtest "A context" => sub { my $subject; my $setup = sub { $subject = Bar->new; return Scope::Guard->new(sub { undef $subject; }); }; subtest 'foo_method' => sub { subtest 'given xxxx arguments' => sub { my $guard = $setup->(); ....