Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re3: The costs of packages

by dragonchild (Archbishop)
on Sep 17, 2003 at 13:33 UTC ( #292111=note: print w/replies, xml ) Need Help??

in reply to Re: Re: The costs of packages
in thread The costs of packages

Inheritance is not a requirement nor even desirable for my application.

It may not be for you, but this sounds like a really neat trick to keep in the toolbox, for similar issues. I would think that inheritance would work because the class would be compiled and its @ISA be set. Then, when a method is called, dispatch would take effect, right?

We are the carpenters and bricklayers of the Information Age.

The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6

Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.

Replies are listed 'Best First'.
Re: Re3: The costs of packages
by BrowserUk (Patriarch) on Sep 17, 2003 at 17:26 UTC

    Like Abigail, I haven't really thought the inheritance thing through fully as I haven't the need for it, but what you say makes sense as far as I can tell. Once the package is initially generated it should act just like any other class (assuming you generate the right stuff:).

    Perhaps the only awkward bit would be managing the process of generating superclasses if the user instantiates an instance of a subclass 2 or 3 levels down in a subclass hierachy?

    use Class::AutoFactory; my $rover = new Dog; # Is a subclass of Canine # Is subclass of Mammal # Is a subclass of Animal.

    Ensuring that each of the parent classes comes into being in the right order would require a fairly detailed map of the class hierachy and might be a bit complex to program. Doable, but it would require a fair amount of thoughtful design to get it right in a way that is easily extensible and maintainable.

    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller
    If I understand your problem, I can solve it! Of course, the same can be said for you.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://292111]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (6)
As of 2023-01-30 08:29 GMT
Find Nodes?
    Voting Booth?

    No recent polls found