# this is A.pm package A; BEGIN { print "Haven't used B yet\n" } use B; BEGIN { print "Just used B\n" } END { print "Exiting A\n" } 1; # this is B.pm package B ; BEGIN { # open a file or exit(1) with a message to STDERR open B_FH, 'somefile' or exit warn "somefile: $!\n" ; } END { close B_FH ; print "Exiting B\n" ; } 1;