#runme.pl
use lib '.';
use ExampleClass;
my $ec = ExampleClass->new;
print $ec->does_work,"\n";
####
#ExampleClass.pm
package ExampleClass;
use lib '.';
use BarWrapper;
use FooWrapper qw/can_i_see_you/;
sub new {
my $class = shift;
bless {}, $class;
}
sub does_work {
can_i_see_you();
}
1;
####
#BarWrapper.pm
package BarWrapper;
use vars qw/@ISA @EXPORT_OK @SUBS/;
require Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw(i_am_another_sub);
require "bar.pl";
require "foo.pl";
1;
####
#bar.pl
sub i_am_another_sub {
return "subber!";
}
1;
####
#FooWrapper.pm
package FooWrapper;
use vars qw/@ISA @EXPORT_OK @SUBS/;
require Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw(can_i_see_you dont_import_me );
require "foo.pl";
1;
####
#foo.pl
sub can_i_see_you {
return "You can see me!";
}
sub dont_import_me {
return "Don't import me";
}
1;