以前 Catalyst::Model::DBIC::Plainでのトランザクション管理 というエントリーを書きました。 Catalyst::Model::DBIC::Plainってあたりが時代を感じさせます。 Cookbokにもありますが現在のDBIx::Classでトランザクションを管理する場合には$schema->txn_do($coderef)を使うとトランザクションの開始からコミット、ロールバックまでやってくれます。 my $schema = CD::Schema->connect(...); $txn = sub { my $artist = $schema->resultset('Artists')->create( { name => $name, } ); my $album = $schema->resultset('Albums')->create( { title