package Before; use Acme::Damn; use overload '&{}' => sub { my $f = shift(); my $ref = damn($f); return sub { print "Stuff before\n"; my @rv = $ref->(@_); bless($ref, __PACKAGE__); return @rv; }; }; 1; #### $ perl -MBefore -e 'my $foo = bless(sub { print shift()."\n" } => 'Before'); $foo->("foo"); $foo->("bar")' Stuff before foo Stuff before bar