Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re: correct usage of class attributes

by gjb (Vicar)
on May 05, 2004 at 13:59 UTC ( #350770=note: print w/replies, xml ) Need Help??

in reply to correct usage of class attributes

There's two things: class attributes and object attributes. The former have the same value for each object of that class, the latter have values specific to each object.

Setting a class attribute $string in method Function10 would be done by simply assigning a value to it, e.g. $string1 = "Hi there";. This assignment is kind of global to all instances of the class.

Setting the attribute of an object would be done by $self->{attr_name} = $attr_vallue;. This assignment is specific to the object you called the method on.

Hope this helps, -gjb-

Replies are listed 'Best First'.
Re: Re: correct usage of class attributes
by Anonymous Monk on May 05, 2004 at 14:12 UTC
    It does help, and thanks gjb. I have one more question (at leat), and I hope you don't mind. How do I decleare attribute names, such as:
    $self->{attr_name} = $attr_value
    in your example? Are those done outside the method area with  my or like this:
    ... $self->{height}=6; $self->{weight}=210; ...
    If so, can you have hashes and arrays? thanks SO much!

      You don't have to declare them. Simply assigning to $self->{height} will do the trick. After all, the object is just a Perl hash that is blessed, nothing more.

      Of course, you may want to initialize the object attributes to default values so that you know their state. In that case the constructor is a good place to do so (the class method conventionally called new.

      Note that this is just the simplest approach to objects in Perl and definitely not the cleanest of safest, but well, it's good to start with IMHO.

      Hope this helps, -gjb-

        last question, I promise!!!

        What about if I want something like: $self->{friends} and I want it to be a list or $self->{pets} and I want it to be a hash? like dogs->mike, charlie->cat mary, sal thanks so much!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://350770]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2017-12-12 14:49 GMT
Find Nodes?
    Voting Booth?
    What programming language do you hate the most?

    Results (334 votes). Check out past polls.