package Modulino::B; use base qw( Modulino::A ); use strict; unless(caller) { no strict 'refs'; # "override" Modulino::A::buy with Modulino::B::buy... *{ "Modulino::A::buy" } = \&buy; # re-use Modulino::A::run... __PACKAGE__->run(@ARGV); } sub perform_modulino_specific_stuff { my $class = shift; print "[special stuff for Modulino::Bs]\n"; } sub buy { print "[alternative way to buy ", $_[0], "]\n" } #######