sub selfcheck { my $self = shift; die "..." if ref $self ne __PACKAGE__; # lineage check... } #### package Foo::Bar; # ... my $selfcheck = sub { my $self = shift; die ... }; sub method { my $self = shift; $selfcheck->( $self ); # ... }