# Module Foo2, file Foo2.pm package Foo2; warn "module Foo2's run time"; BEGIN { warn "module Foo2's compile time"; } use Foo1; BEGIN { warn "module Foo2's compile time"; } sub import { warn "$_[0]\->import() called from " . caller; } warn "module Foo2's run time"; 1; # Module Foo1, file Foo1.pm package Foo1; warn "module Foo1's run time"; BEGIN { warn "module Foo1's compile time"; } sub import { warn "$_[0]\->import() called from " . caller; } warn "module Foo1's run time"; 1; # main script warn "Main script, runtime"; BEGIN { warn "Main script compile time"; } use Foo2; warn "Main script, runtime"; BEGIN { warn "Main script compile time"; }