package Functions::Alternate; use strict; use Exporter; use Functions::Base (@Functions::Base::EXPORT_OK); our @ISA = qw(Exporter); our @EXPORT_OK = (@Functions::Base::EXPORT_OK, qw (funcx funcy) ); # func1 is going to be replaced with our own no warnings 'redefine'; sub func1 { print "goodbye"; } # func2 is going to be replaced with our own sub func2 { Functions::Base::func2(); print "(haha)"; } use warnings 'redefine'; # func3 is reused from orig::functions unchanged # a couple new functions sub funcx { print "new x"; } sub funcy { print "new y"; } return 1;