At
view release on metacpan or search on metacpan
lib/At/Error.pm view on Meta::CPAN
field $fatal : param : reader //= 0;
field @stack;
ADJUST {
my $i = 0;
while ( my $info = $self->_caller_info( ++$i ) ) {
push @stack, $info;
}
}
method _caller_info($i) {
my ( $package, $filename, $line, $subroutine ) = caller($i);
return unless $package;
return { package => $package, file => $filename, line => $line, sub_name => $subroutine };
}
method throw() {
my ( undef, $file, $line ) = caller();
my $msg = join "\n\t", sprintf( qq[%s at %s line %d\n], $message, $file, $line ),
map { sprintf q[%s called at %s line %d], $_->{sub_name}, $_->{file}, $_->{line} } @stack;
$fatal ? die "$msg\n" : warn "$msg\n";
}
# Compatibility with old At::Error
sub import {
my $class = shift;
my $from = caller;
no strict 'refs';
( run in 2.630 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )