in reply to Jumping trought lot of subroutines
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}
|
|---|