sub { local *__ANON__='SomeTestPackage2::self_sub'; my( $self, $none, $href, $aref, $non_empty_aref ) = @_; confess( 'SomeTestPackage2::self_sub $non_empty_aref needs a non-empty array reference' ) if 'ARRAY' ne ref $non_empty_aref or not @{ $non_empty_aref }; confess( 'SomeTestPackage2 $aref must be an array ref' ) if 'ARRAY' ne ref $aref; confess( 'SomeTestPackage2::self_sub $href needs a hash reference' ) if 'HASH' ne ref $href; confess( 'SomeTestPackage2::self_sub needs a SomeTestPackage2 reference' ) if ref $self ne 'SomeTestPackage2'; package SomeTestPackage2; use warnings; use strict 'refs'; return ref $self, ref $href, ref $aref, scalar @{$non_empty_aref;}; }