in reply to How to sub class-es
Check out Conway's Object Oriented Perl. And for God's sake I hope you never find the time to learn Moose or Moo.
If you want to have walk and pick methods attached to Robo instances, then you have to create these as subroutines in package Robo.package Robo; use strict; use warnings; sub new { bless { Arm => Robo::Arm->new(), # 'Arm' points to instance of Robo +::Arm Feet => Robo::Feet->new(), #'Feet' points to instance of Rob +o::Feet }, shift } 1; package main; my $robo = Robo->new(); $robo->{Feet}->walk(); $robo->{Arm}->pick( "Apple" );
Maybe that's what you're trying to do with AUTOLOAD, but my advice is to do it manually before you start trying to fold in methods from member classes using AUTOLOAD.sub walk { my $self = shift; $self->{Feet}->walk(); return; } sub pick { my ($self, $thing) = @_; return $self->{Arm}->pick( $thing ); }
Also, new X is not idiomatic and I am surprised still works in some cases. Do X->new(..) and don't look back.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: How to sub class-es
by JediMasterT (Sexton) on May 21, 2020 at 12:02 UTC |
In Section
Seekers of Perl Wisdom