package ParentModule; use strict; sub base_foo {}; sub base_baz {}; sub import { my ($class,@routines) = @_; my $target = caller; # Install the requested routines in the target package for my $name (@routines) { no strict 'refs'; *{"$target\::$name"} = \&{"base_$name"}; }; }; 1; #### package ChildModule1; use strict; use ParentModule qw( foo bar ); package ChildModule2; use strict; use ParentModule qw( foo ); # Own implementation of bar() sub bar {...}; 1;