-package DBIx::Class::Carp;
+package # hide from pause
+ DBIx::Class::Carp;
use strict;
use warnings;
my $fr_num = 1; # skip us and the calling carp*
my @f;
while (@f = caller($fr_num++)) {
- last unless $f[0] =~ $skip_pattern;
-
if (
$f[0]->can('_skip_namespace_frames')
and
) {
$skip_pattern = qr/$skip_pattern|$extra_skip/;
}
+
+ last if $f[0] !~ $skip_pattern;
}
my ($ln, $calling) = @f # if empty - nothing matched - full stack
my $into = caller;
$skip_pattern = $skip_pattern
- ? qr/ ^ $into $ | $skip_pattern /xo
- : qr/ ^ $into $ /xo
+ ? qr/ ^ $into $ | $skip_pattern /x
+ : qr/ ^ $into $ /x
;
no strict 'refs';
);
};
- my $fired;
+ my $fired = {};
*{"${into}::carp_once"} = sub {
- return if $fired;
- $fired = 1;
+ return if $fired->{$_[0]};
+ $fired->{$_[0]} = 1;
$warn->(
__find_caller($skip_pattern, $into),
## FIXME FIXME FIXME - something is tripping up V::M on 5.8.1, leading
# to segfaults. When n::c/B::H::EndOfScope is rewritten in terms of tie()
# see if this starts working
- unless DBIx::Class::_ENV_::BROKEN_NAMESPACE_CLEAN();
+ unless DBIx::Class::_ENV_::BROKEN_NAMESPACE_CLEAN;
}
sub unimport {