####### foo.pl ######################
use Foo;
my $o = Foo->new( name => 'Tom' );
####### Foo.pm ##################
package Foo;
sub new {
my ($class, %args) = @_;
my $self = { name => $args{name} };
bless $self, $class;
return $self;
}
sub name { return $_[0]->{name}; }
1;
####
####### bar.pl ######################
use Bar;
my $o = Bar->new( age => 23 );
####### Bar.pm ##################
package Bar;
sub new {
my ($class, %args) = @_;
my $self = { age => $args{age} };
bless $self, $class;
return $self;
}
sub age { return $_[0]->{age}; }
1;
####
foo.pl
Foo.pm
bar.pl
Bar.pm
####
####### foobar.pl ######################
use Foobar;
my $o = Foobar->new(
name => 'Tom'
age => 23
);
####
foobar.pl
Foobar.pm
Foobar/Foo.pm
Foobar/Bar.pm
####
####### Foobar.pm ##################
package Foobar;
use Foobar::Foo; ???
use Foobar::Bar; ???
sub new {
????
}
1;