http://qs321.pair.com?node_id=809222

lepetitalbert has asked for the wisdom of the Perl Monks concerning the following question:

Hello esteemed Monks,

I'm looking for some enlightenment about some 00 concepts.
given :

package Test; sub new { my $class = shift; my $item = {}; print "DEBUG : creating object in " . __PACKAGE__ . "\n"; bless $item , $class; return $item; } 1;

and :

package Test::Command; use strict; use warnings; use Test; use vars qw(@ISA); @ISA = qw(Test); sub new { my $item = shift; my $command = shift; my $class = ref( $item ) || $item; my $self = bless $item->SUPER::new(), $class; print "DEBUG : handling command $command in " . __PACKAGE__ . "\n" + if ( $command ); } 1;

running :

#!/usr/bin/perl use strict; use warnings; use lib 'lib'; use Test; use Test::Command; $|=1; my $test_command = Test::Command->new(@ARGV);

produces :

DEBUG : creating object in Test DEBUG : handling command test_command in Test::Command

question 1 :
why does

my $test_command = Command->new(@ARGV);

not work ?
and question 2 :

in Test::Command I'd like to check if there's a

Test::Command::$command

module and if yes execute something like this

Test::Command::$command->handle_output()

Do I need some AUTOLOAD Voodoo ? in Test.pm ?

Any hints, pointers, examples and even solutions are welcome !

P.S : I already read the common OOtuts (several times), but it's still not clear in my tired neuron.

Thanks !

Have a nice day

"There is only one good, namely knowledge, and only one evil, namely ignorance." Socrates