use warnings; use strict; my $hai = O::HAI->new({ arg => "KTHX" }); BEGIN { package O::HAI; use B::Deparse; use Moose; has "arg" => isa => "Str", is => "ro"; sub BUILD { my ( $package, $filename, $line, $subroutine ) = caller(4); my $sub_ref = do { no strict "refs"; \&{join("::",$package,$subroutine)}; }; my $deparse = B::Deparse->new("-p", "-sC"); my $caller = $deparse->coderef2text($sub_ref); print $caller, $/; } }