Bio-EnsEMBL
view release on metacpan or search on metacpan
lib/Bio/EnsEMBL/Utils/Exception.pm view on Meta::CPAN
# Use only two sub-dirs for brevity when reporting the file name.
my $file;
my @path = split( /\//, $caller[1] );
$file = pop(@path);
my $i = 0;
while ( @path && $i < 2 ) {
$i++;
$file = pop(@path) . "/$file";
}
@caller = caller(1);
my $caller_line;
my $caller_file;
$i = 0;
if (@caller) {
@path = split( /\//, $caller[1] );
$caller_line = $caller[2];
$caller_file = pop(@path);
while ( @path && $i < 2 ) {
$i++;
$caller_file = pop(@path) . "/$caller_file";
lib/Bio/EnsEMBL/Utils/Exception.pm view on Meta::CPAN
return $out;
}
=head2 stack_trace
Arg [1] : none
Example : use Bio::EnsEMBL::Utils::Exception qw(stack_trace)
Description: Gives an array to a reference of arrays with stack trace info
each coming from the caller(stack_number) call
Returntype : array of listrefs of strings
Exceptions : none
Caller : general, stack_trace_dump()
=cut
sub stack_trace {
my $i = 0;
my @out;
my $prev;
while ( my @call = caller($i++)) {
# major annoyance that caller puts caller context as
# function name. Hence some monkeying around...
$prev->[3] = $call[3];
push(@out,$prev);
$prev = \@call;
}
$prev->[3] = 'toplevel';
push(@out,$prev);
return @out;
lib/Bio/EnsEMBL/Utils/Exception.pm view on Meta::CPAN
sub deprecate {
my $mesg = shift;
$mesg = shift if($mesg eq "Bio::EnsEMBL::Utils::Exception"); #skip object if one provided
my $level = shift;
$level = $DEFAULT_DEPRECATE if(!defined($level));
return if($VERBOSITY < $level);
my @caller = caller(1);
my $subname = $caller[3] ;
my $line = $caller[2];
#use only 2 subdirs for brevity when reporting the filename
my $file;
my @path = $caller[1];
$file = pop(@path);
my $i = 0;
while(@path && $i < 2) {
$i++;
( run in 0.387 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )