試してみたけど、色々警告がでてめんどくさくなり考えるのをやめた。
package MyApp::Schema; use 5.14.1; use strict; use warnings; use utf8; use parent "DBIx::Class::Schema"; __PACKAGE__->exception_action(sub { my $trace; my $i = 0; while ( my @caller = caller($i) ) { my $file = $caller[1]; $file =~ s!\*/!*\//!g; $trace = "/* $file line $caller[2] */"; if ( $caller[0] =~ /^MyApp/ && $caller[0] !~ /^MyApp::Schema/ && $caller[0] !~ /^MyApp::Test/ ) { last; } $i++; } warn $trace; }); 1;
DBIx::Sunny使えば苦労しない。