Devel-EnforceEncapsulation
view release on metacpan or search on metacpan
lib/Devel/EnforceEncapsulation.pm view on Meta::CPAN
my $pkg = shift;
my $dest_pkg = shift;
## no critic(ProhibitStringyEval,RequireCarping)
my $overloads = join q{,}, map { "'$_'" } $pkg->_ops;
eval "{package $dest_pkg; no overload $overloads, 'fallback';}";
die $EVAL_ERROR if $EVAL_ERROR;
return;
}
## possible callbacks to be installed via overload ##
sub _deref_overload_croak {
my $self = shift;
my $caller_pkg = caller;
if (!$self->isa($caller_pkg)) {
my $pkg = ref $self;
croak "Illegal attempt to access $pkg internals from $caller_pkg";
}
return $self;
( run in 0.389 second using v1.01-cache-2.11-cpan-9b1e4054eb1 )