####### 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;
and
####### 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;
My file structure on the disk looks like so --
foo.pl Foo.pm bar.pl Bar.pm
By now, things are getting messy, so I really want
####### foobar.pl ###################### use Foobar; my $o = Foobar->new( name => 'Tom' age => 23 );
and the files on my disk to be
foobar.pl Foobar.pm Foobar/Foo.pm Foobar/Bar.pm
How do I proceed? What do I put in Foobar.pm?
####### Foobar.pm ################## package Foobar; use Foobar::Foo; ??? use Foobar::Bar; ??? sub new { ???? } 1;
And, please, I don't want to know how to do it with Moose. Nothing against it; I just want to understand the logic and process behind achieving the above objective.
In reply to Extending objects by punkish
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |