In Foo.pm package Foo; use strict; use warnings; use Exporter; our @ISA = qw( Exporter ); our @EXPORT_OK = qw( foo ); sub foo { print "Foo\n"; } 1; ---------- In Bar.pm package Bar; use strict; use warnings; use Foo qw( foo ); our @ISA = qw( Foo ); sub bar { foo() } 1; ---------- In test.pl #!/usr/bin/perl use strict; use warnings; use Bar; Bar::foo(); Bar::bar();