#!/usr/bin/perl use lib "."; use A; use B; def(); ######################################## A.pm package A; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(abc); use C; ######################################## B.pm package B; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(def); use C; sub def{ print "Inside sub def of package B -> calling sub abc from package C\n"; abc(); } ######################################## C.pm package C; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(abc); sub abc{ print "Inside sub abc of package A\n"; }