sub something {
my ( $self, $param ) = @_;
return _stuff($param);
}
####
sub something {
log_msg('starting sub');
my ( $self, $param ) = @_;
return _stuff($param);
}
##
##
sub import {
my $package_name = shift;
if (
$package_name !~ /^Application::Stuff_I_Dont_Want_To_Alter::/
) {
no strict 'refs';
no warnings 'redefine';
foreach ( keys %{ *{ $package_name . '::' } } ) {
next if (
$_ !~ /[a-z]/ or
$_ =~ /::$/ or
$_ eq 'isa' or
$_ eq 'import'
);
if ( *{ $package_name, '::', $_ }{'CODE'} ) {
my $code = do{
*{ $package_name, '::', $_ }{'CODE'};
};
*{ $package_name, '::', $_ } = sub {
warn "BEGIN sub block...\n";
my @rv = $code->(@_);
warn "END sub block...\n";
return @rv;
};
}
}
}
}