There's a number of things wrong here. First off Perl inheritence doesn't work like you've coded... you're injecting objects into class variables, which can certainly be useful, but it isn't inheritence and doesn't let you aggregate methods like you want. Inheritence in Perl revolves around the @ISA array. The @ISA array tells each package (class) that it "is a" member of another class, and tells Perl where to inherit methods from.
Secondly, if you want to display the attributes of a class instance you need to call the methods of that instance. Your three example classes don't have any methods, and print($car) just prints a stringified version of the $car object, which is the type of variable $car represents followed by its location in memory. To get the behavior you want you should do something like $car->print where "print" represents a method in the Family package that calls "getter" methods for each attribute you want to display.
I would strongly recommend Damian Conway's Object Oriented Perl if you want to learn (most) all there is to know about Perl 5 OO programming.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
Outside of code tags, you may need to use entities for some characters:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||