in reply to Re: Inheritance can be messy in Perl. Multiple inheritance can be disastrous.
in thread Understanding 'Multiple Inheritance'

It's true that you only get one scalar (a reference) to bless into objecthood; but it doesn't have to be a hash.
Indeed, but don't even think for a microsecond that that's a feature. It's not. Try subclassing from the class that uses references to arrays as objects - with a variable amount of data members. Try subclassing from a class that's using blessed closures as objects, and having the need to store instance data as well. Try subclassing from scalar references. Try doing MI from two classes that both use array references as objects - even if you have no instance data to store yourself.

If you want to play friendly with potential subclassers, you either use references to hashes, or a technique that uses only the reference, and not what's it pointing to, like some fly weight pattern variations, or inside out objects, or Lexical::Attributes.

  • Comment on Re^2: Inheritance can be messy in Perl. Multiple inheritance can be disastrous.

Replies are listed 'Best First'.
Re^3: Inheritance can be messy in Perl. Multiple inheritance can be disastrous.
by jdporter (Paladin) on Mar 08, 2005 at 15:26 UTC
    If you're trying to do Java programming in Perl, you deserve the pain you get. ;-)
      Obviously, anyone doing MI can't be doing Java programming - as the Java developers succesfully got away by stating "MI isn't needed". And people still love Java.
        Most of your complaints pertain to single inheritance as well. But fine - s/Java/any other language/.
        And people still love Java.
        I know. Amazing, isn't it? But utterly irrelevant to the current debate.