punkish has asked for the wisdom of the Perl Monks concerning the following question:
####### 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.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Extending objects
by JavaFan (Canon) on Jul 07, 2010 at 15:11 UTC | |
by punkish (Priest) on Jul 07, 2010 at 15:23 UTC | |
by JavaFan (Canon) on Jul 07, 2010 at 15:33 UTC | |
|
Re: Extending objects
by chromatic (Archbishop) on Jul 07, 2010 at 16:40 UTC | |
|
Re: Extending objects
by stevieb (Canon) on Jul 07, 2010 at 15:11 UTC | |
by JavaFan (Canon) on Jul 07, 2010 at 15:19 UTC | |
by punkish (Priest) on Jul 07, 2010 at 15:29 UTC | |
by stevieb (Canon) on Jul 07, 2010 at 15:43 UTC | |
|
Re: Extending objects
by youwin (Beadle) on Jul 07, 2010 at 21:36 UTC | |
|
Re: Extending objects
by nudge (Acolyte) on Jul 08, 2010 at 00:14 UTC | |
by nudge (Acolyte) on Jul 08, 2010 at 02:38 UTC |