Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re: When hashes aren't enough

by Stevie-O (Friar)
on May 25, 2004 at 15:47 UTC ( #356272=note: print w/replies, xml ) Need Help??

in reply to When hashes aren't enough

Using OOP doesn't actually require packages and bless()ing. It just means you have to do something in an object-oriented way :)

With that in mind, it depends on what you're using the information *for*. For example, if you only need to process the color information for everything at once, using $color{'car'} and $color{'bike'} make perfect sense.

On the other hand, if you needed to keep the different attributes of an item together (for example, for storage to a file on disk), you might prefer to do this:

$car = { wheels => 4, doors => 4, color => 'blue', trans => 'auto' }; $bike = { wheels => 2, color => 'red', };
The reason for doing this is that, with all the attributes of an item in one hash, it's easy to pass that item around to whatever might need it. For example, you can pass it to Storable's freeze method and preserve your car in a disk file (for thawing by another script, or a later instance of your own). Or, you could pass a hash to a function that does something generic to whatever is passed in (like telling you if its turn signals automatically shut off; vehicles without steering wheels don't have that). This sort of design is at the heart of OO.
$"=$,,$_=q>|\p4<6 8p<M/_|<('=> .q>.<4-KI<l|2$<6%s!<qn#F<>;$, .=pack'N*',"@{[unpack'C*',$_] }"for split/</;$_=$,,y[A-Z a-z] {}cd;print lc

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (5)
As of 2018-06-22 04:08 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (121 votes). Check out past polls.