$ perl -Mwarnings -e ' use B::Deparse; use Package::ReRequire1; printf( "%s = %s\n", $_, B::Deparse->new->coderef2text( \&{ "Package::ReRequire1::" . $_ } ) ) for keys %{ "Package::ReRequire1::" };' function = { package Package::ToBeReRequired1; BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU"} use strict 'refs'; '???'; my($output) = ''; do { $output .= ' CONDITION ' }; $output .= ' UNCONDITIONAL '; $output .= 'Package::ReRequire1'; '???'; return $output; } BEGIN = ; import = { package Package::ReRequire1; BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU"} use strict 'refs'; Package::ReRequire::rerequire('Package::ToBeReRequired1', 'CLUCK', 0, 'METHOD', 0, 'CONDITION', 1, 'THING', 'Package::ReRequire1'); *function = Package::ToBeReRequired1::get_sub(); } $ perl -Mwarnings -e ' use B::Deparse; use Package::ReRequire2; printf( "%s = %s\n", $_, B::Deparse->new->coderef2text( \&{ "Package::ReRequire2::" . $_ } ) ) for keys %{ "Package::ReRequire2::" };' BEGIN = ; method = { package Package::ToBeReRequired1; BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU"} use strict 'refs'; my($self) = @_; my($output) = $self; '???'; $output .= ' UNCONDITIONAL '; $output .= 'Package::ReRequire2'; Carp::cluck('Package::ReRequire2 clucking '); return $output; } import = { package Package::ReRequire2; BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU"} use strict 'refs'; ReRequire::rerequire('Package::ToBeReRequired1', 'CLUCK', 1, 'METHOD', 1, 'CONDITION', 0, 'THING', 'Package::ReRequire2'); *method = Package::ToBeReRequired1::get_sub(); }