> Hi Dan.
> 
> There's a few things wrong here, and I'm struggling to work out what
you're
> trying to do.
> 
> Dan Muey wrote:
> >
> > Yet another module question.
> >
> > I'm so close and I've done this but I can't get it to work.
> >
> > I am writing a module that is an extension/sub module of an existing
module.
> >
> > use ... MyNewSexxySubModule qw(function);
> 
> We really need to see what's inside MyNewSexxySubModule.pm. If you're
> subclassing Original::Package then it should look something like:
> 
>   package MyNewSexxySubModule;
> 
>   require Original::Package;
>   our @ISA = qw(Original::Package);
> 
> is that about right?
> 
> > $obj = new->Original::Package();
> 
> So then what's this? It looks like you're trying to call the constructor
> of the Original::Package class, but it compiles as
> 
>   $obj = 'new'->Original::Package;
> 
> which I can't even understand to be valid syntax unless you've also got
> a subroutine called 'Package' in package 'Original' :-/
> 
>   my $obj = new Original::Package;
> or
>   my $obj = Original::Package->new;
> 
> but even then you're creating an instance of your base class, not your
> new subclass.
> 
> > for(Original::Package::MyNewSexxySubModule::function($obj,$arg)) { ....
> 
> Here's yet another new package name which you haven't mentioned. What's
> Original::Package::MyNewSexxySubModule? You also seem to be calling it
> with your Original::Package object as its first parameter as if you were
> trying to emulate the object method call $obj->function but using a
> different class.
> 
> > This works like a charm but what I'd really like to do is this:
> 
> I'm very surprised, but...
> 
> > Use lib '/home/me/modules/';
> > use MyNewSexxySubModule qw(function); # package
Original::Package::MyNewSexxySubModule;
> 
> >From this comment it looks like your MyNewSexxySubModule.pm file
might look
> like
> 
>   package Original::Package::MyNewSexxySubModule;
> 
>   require Original::Package;
>   our @ISA = qw(Original::Package);
> 
> The name of the module should always be the same as the class name.
> 
> > $obj = new->Original::Package();
> > for($obj->function($arg)) { ....
> 
> I'm still struggling to see why you're not using your new subclass at
all. But
> assuming Original::Package::new exists and returns a blessed
reference, and
> Original::Package::function exists then this should all be OK.
> 
> > When I try that it says:
> > Original::Package=GLOB(0x829da00) is an [unexpected] object,
aborting at ./ModTest.pl line 21
> > Line 21 is my for($obj->....
> 
> I haven't the faintest idea what that error message might mean. But it
looks like you're
> way off beam :)
> 
> > Any ideas what I'm missing ??
> 
> You've missed showing us where you've screwed up!
> 
> Cheers,
> 

Thank god Rob wrote this, I thought I had been asleep for about 6 months
and there was a whole new way to access into a symbol table looking for
a class constructor!!  Just throwing in my two cents that I was as
confused as Rob :-)....

The beginners list just wouldn't be pushed to the edge without you Dan! ;-)

http://danconia.org


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to