#!/usr/bin/perl use strict; use warnings; use v5.10; sub YadaYada { say "YadaYada"; }; use Xyzzy (\&YadaYada); say "Executing ".__PACKAGE__; INIT { say __PACKAGE__."::INIT"; }; END { say __PACKAGE__."::END"; }; #### package Xyzzy; use Data::Dumper; use strict; use warnings; use v5.10; my $external; sub import { shift; $external=$_[0]; }; say "Executing ".__PACKAGE__; INIT { say __PACKAGE__."::INIT"; $external->(); }; END { say __PACKAGE__."::END"; }; 1; #### Executing Xyzzy Xyzzy::INIT YadaYada main::INIT Executing main main::END Xyzzy::END