BEGIN { *write = \&A::write } # Doesn't work! #### # Perl 5.8.8 { package X; # I change to X and Y because B is taken. sub write (&) { print $_[0]->() } } { package Y; BEGIN { package Something::Else; *Y::write = \&X::write; } write { 'OK' }; } __END__ OK