package A; use B; require 'standard.pl'; sub new { # [snip] bless ($self, $class); do_something(); # subroutine in standard.pl return $self; } #### package B; require 'standard.pl'; sub new { # [snip] bless ($self, $class); do_something(); # subroutine in standard.pl return $self; } #### # standard.pl # [snip] sub do_something { print "Howdy.\n"; } 1; #### Undefined subroutine A::do_something called at A.pm line X. #### do_something(); #### B::do_something();