in reply to Re^5: Where is the @ISA array?
in thread Where is the @ISA array?

That's a petty and trivial reason to not use base, no? And if it is such a problem for everyone ... how did that get out the production door? Why has there not been a "bug" fix?

Replies are listed 'Best First'.
Re^7: Where is the @ISA array?
by Corion (Patriarch) on Jan 22, 2009 at 13:52 UTC

    Because Schwern (who added all those misfeatures) threw his hands up in despair and declared it unfixable. Hence, the fixed version was released under a new name, parent.pm.

    And it's not a problem when things work, but once things fail, they fail ways that are hard to debug because whether a subclass gets loaded depends on program flow in a nonobvious way.

      I guess I just know how to use base then. *shrug* You guys are really doing a great job of tearing Perl up, module by module.
Re^7: Where is the @ISA array?
by ikegami (Patriarch) on Jan 22, 2009 at 14:07 UTC

    That's a petty and trivial reason to not use base, no?

    Considering there's no reason to use base in the first place...

    Why has there not been a "bug" fix?

    They did fix it with the creation of parent. Fixing it in place would break the following intended use of base:

    { package Base; ... } { package Subclass; use base 'Base'; ... }
      So the fix is to go back to all of our code and replace base with parent and retest and try to explain to our clients why they have to pay for it. That's just great. No, really. Thanks a lot.

      I guess the answer is use Moose! I'm never using base again. Nor parent.

        Heh, you're fretting over converting to parent, but changing to Mouse is ok.

        Who said anything about changing any old code? And if you had to, how is that a "fixing base" vs "creating parent" thing? You'd have to change the code either way.