file mod1.pm: package mod1; use mod2; sub import { print "mod1 imported from " . (caller)[1] . "\n" } 1; file mod2.pm: package mod2; use mod1; sub import { print "mod2 imported from " . (caller)[1] . "\n" } 1; file use.pl: #!/usr/bin/perl use lib '.'; use mod1; use mod2; output: $ perl use.pl mod2 imported from mod1.pm mod1 imported from use.pl mod2 imported from use.pl $