package module; use warnings; use strict; use base qw/Exporter/; our @EXPORT = qw/function/; sub function { print "old\n"; } 1; #### package redefine; use warnings; use strict; no warnings qw/redefine/; use module; sub module::function { print "new\n"; } 1; #### use module; use redefine; function();