Disregard this post. Seems I havent got the OPs question right.
That is what Carp is for:
that gives#!/usr/bin/perl use Carp qw(confess cluck); use strict; $SIG{__DIE__} = \&confess; $SIG{__WARN__} = \&cluck; a(); sub a { print "in a\n"; b("foo"); } sub b { warn "got wrong value $_[0]\n"; c("bar"); } sub c { print "in c\n"; die "dying because of $_[0]!\n"; }
in a got wrong value foo at foo.pl line 17 main::b('foo') called at foo.pl line 13 main::a() called at foo.pl line 9 in c dying because of bar! at foo.pl line 23 main::c('bar') called at foo.pl line 18 main::b('foo') called at foo.pl line 13 main::a() called at foo.pl line 9
With that backtrace you know what's going wrong,and where.
If you want to keep your code running and just examine the errors, you could write a sub that just stores the warnings in an array for later examination, and assign a reference of that to $SIG{__WARN__}.
--shmem
_($_=" "x(1<<5)."?\n".q·/)Oo. G°\ /
/\_¯/(q /
---------------------------- \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
In reply to Re: Jumping trought lot of subroutines
by shmem
in thread Jumping trought lot of subroutines
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |