>type script.pl use M1 qw( ); sub test2 { M1::test3(); } sub test1 { test2(); } test1(); >type M1.pm package M1; use M2 qw( ); sub test4 { M2::test5(); } sub test3 { test4(); } 1; >type M2.pm package M2; use Carp qw( croak ); sub test5 { croak("ribbit"); } 1; >perl script.pl ribbit at M1.pm line 3 #### >perl -MCarp=verbose script.pl ribbit at M2.pm line 3 M2::test5() called at M1.pm line 3 M1::test4() called at M1.pm line 4 M1::test3() called at script.pl line 2 main::test2() called at script.pl line 3 main::test1() called at script.pl line 4