'use base qw[Foo Bar]' is roughly equivalent to: BEGIN { require Foo; require Bar; push @ISA, qw(Foo Bar); } ... If any of the base classes are not loaded yet, *base* silently "require"s them.