#! perl # run.pl use lib '/tmp/test'; use testlib::testlib; Test::test(); __END__ # testlib.pm package Test; { use Cwd (); my $cur_dir = Cwd::cwd; chdir '/tmp/test/testlib' or die "chdir failed: $!"; for ( <*.pm> ) { next if $_ eq 'testlib.pm'; s/\.pm$//; warn "require'ing $_"; eval "require testlib\:\:$_" or die @$; } chdir $cur_dir or die "chdir failed: $!"; } sub test { Test::test1(); Test::test2(); } __END__ # mod1.pm package Test; 1; sub test1 { print 'test1 called', $/; } __END__ # mod2.pm package Test; 1; sub test2 { print 'test2 called', $/; } __END__