package LikeOOModule;
use base 'MyOOModule';
sub foo {
my $self = shift;
if ($self->mode == OO_THIS) { ... }
elsif ($self->mode == OO_THAT) { ... }
}
####
use base 'MyOOModule';
MyOOModule->import;
####
# this handles 'use base "MyOOModule"'
# which doesn't call 'import'
{
my ($level, $prev, $pkg);
while (my ($curr) = caller $level++) {
$pkg = $curr, last
if $prev
and $prev eq "base" # NB: base.pm shows
and $curr ne "base"; # up twice in a row
$prev = $curr;
}
__PACKAGE__->export_to_level($level, $pkg, @EXPORT)
if $pkg;
}