Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
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.

Gary Blackburn
Trained Killer


In reply to Re: Stuck on packages by Trimbach
in thread Stuck on packages by Yoda_Oz

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (3)
As of 2024-04-20 16:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found