{ package Bar; use Moose; sub do_something { print "did something\n" } my $before = \&do_something; around 'do_something' => sub { my $orig = shift; my $self = shift; print "around do_something\n"; print "\t\$orig=$orig\n"; print "\t\$before=$before\n"; print "\t\\&do_something=".\&do_something."\n"; }; } my $bar = Bar->new; $bar->do_something; print "can=", $bar->can('do_something'), "\n"; __END__ around do_something $orig=CODE(0x223d5e8) $before=CODE(0x223d5e8) \&do_something=CODE(0x228ae92) can=CODE(0x228ae92)