It's conceivable that you could (though I'm somewhat doubtful), but it might be easier, if this is for debugging, to wrap your subroutines, roughly thus (largely untested):
sub dosomething {print "in dosomething\n" }
sub wrappit {
no strict 'refs';
my ($subname) = @_;
my $oldsub = \&{$subname};
*{$subname} = sub {
print "entering $subname\n";
my @rv = wantarray ? $oldsub->(@_) : scalar $oldsub->(@_);
print "leaving $subname\n";
return wantarray ? @rv : $rv[0];
};
}
wrappit('dosomething');
dosomething(1..5);
If God had meant us to fly, he would *never* have given us the railroads.
--Michael Flanders