script
-> A::a_func("str")
-> B::b_func("str")
-> C::c_func("str") # c_func is what prints the data
####
use warnings;
use strict;
use lib '.';
use A qw(a_func);
a_func("a string");
####
package A;
use lib '.';
use B qw(b_func); # load the 'B' package
use Exporter qw(import);
our @EXPORT_OK = qw(a_func);
sub a_func {
my $str = shift;
b_func($str);
}
1;
####
package B;
use lib '.';
use C qw(c_func);
use Exporter qw(import);
our @EXPORT_OK = qw (b_func);
sub b_func {
my $str = shift;
c_func($str);
}
1;
####
package C;
use Exporter qw(import);
our @EXPORT_OK = qw(c_func);
sub c_func {
my $string_to_say = shift;
print "$string_to_say\n";
}
1;