in reply to carp up two levels

Perhaps Sub::Uplevel is the module for you e.g
use Carp; use Sub::Uplevel; sub foo { git() } sub git { uplevel 2, \&implementation } sub implementation { croak "and so it ends" } foo(); __output__ and so it ends at pmsopw_256988.pl line 4 main::foo() called at pmsopw_256988.pl line 8

HTH

_________
broquaint