-----------
package Baz;
use base qw(Foo Bar);
####
BEGIN {
require Foo;
require Bar;
push @ISA, qw(Foo Bar);
}
----------
##
##
----------
### File A.pm
package A;
sub import { warn "A imported"; }
----------
### File X.pm
package X;
use base qw(A);
sub import { warn "X imported"; }
----------
### File Y.pm
package Y;
use A;
use base qw(A);
sub import { warn "Y imported"; }
-----------
### File Z.pm
package Z;
use A;
@ISA = qw(A);
sub import { warn "Z imported"; }
----------
##
##
bash$ perl -e 'use X'
import X at X.pm line 7.
bash$ perl -e 'use Y'
import A at A.pm line 5.
import Y at Y.pm line 8.
bash$ perl -e 'use Z'
import A at A.pm line 5.
import Z at Z.pm line 9.