http://www.perlmonks.org?node_id=550537


in reply to Subclassing and CGI::Prototype

The problem is that there's also "instance" data in the class that gets the "activate"... in this case, the CGI object ends up in your "My_Zero" class, which is not in the inheritance path for One or Two, and so those pages don't have access to the CGI object.

I've thought about fixing that by forcing the CGI slot to always be located up in CGI::Prototype, but I have to think through that carefully to make sure that doesn't break some other assumption.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.

Replies are listed 'Best First'.
Re^2: Subclassing and CGI::Prototype
by tlm (Prior) on May 19, 2006 at 18:54 UTC

    Thanks.

    I've thought about fixing that by forcing the CGI slot to always be located up in CGI::Prototype, but I have to think through that carefully to make sure that doesn't break some other assumption.

    Hey, that's what unit tests are for! :)

    Anyway, in the meantime, I've added a few notes to the CGI::Prototype page at AnnoCPAN.

    the lowliest monk

      Try this patch. Change $self->reflect->addSlot to __PACKAGE__->reflect->addSlot in CGI/Prototype.pm in the initialize_CGI subroutine. I think that'll do it right. But I'm trying to think of how to have subclasses also be able to select where the CGI slot should be.

      -- Randal L. Schwartz, Perl hacker
      Be sure to read my standard disclaimer if this is a reply.