package DerivedClass; use strict; use base qw(BaseClass); use ImportClass qw(blah); sub new { return bless {}; } 1; #### package BaseClass; sub blah { return "blah"; } 1; #### package ImportClass; use strict; use NEXT; sub import { my $package = shift; my $methodname = shift; my $dest = caller; my $method = sub { return shift->SUPER::blah(); }; my $symbol = $dest . '::' . $methodname; { no strict 'refs'; *$symbol = $method; } } 1; #### #!/usr/bin/perl use DerivedClass; my $object = DerivedClass->new(); print $object->blah() . "\n"; #### Can't locate object method "blah" via package "ImportClass" at ImportClass.pm line 10. #### Can't call NEXT::blah from ImportClass::__ANON__ at ImportClass.pm line 10