Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

RE: Re: Is it worth the reference?

by BlaisePascal (Monk)
on Sep 20, 2000 at 06:33 UTC ( #33239=note: print w/replies, xml ) Need Help??

in reply to Re: Is it worth the reference?
in thread Is it worth the reference?

In general, unless you need to use [array references[]], don't.
I wouldn't necessarily go that far.

In this instance, no, the array ref is not worth it, I'll admit, but notice nobody criticised his use of hash references.

The key guide meonkeys should use to decide between arrays and array refs is: Does the use of one over the other make the program easier to read, write, and understand?

If using array refs make the program easier to read, write, and understand, the savings from that will (usually) dwarf the extra time spent in the deref.

(This is not a license to use them gratuitously, but rather to use them sensibly. I think the use in this snippit is obviously gratuitous (even to meonkeys).

To answer meonkeys' final question (what are array refs good for?): Array refs are useful when it is necessary or convenient to treat an entire array as a single scalar:

  • storing an array into another array or hash
  • passing multiple arrays into subroutines while maintaining their distinct identity
  • when the array represents a single "unit" of data (such as a complex number stored as a 2-element array)
  • etc
For the last, if your data is that complicated, it might be reasonable to start thinking of making an object out of it, and an array ref is one possibility for an implementation.

When you just want an ordered collection of values, an array will probably be easier to understand and faster than the array ref. When you need to think of the contents of the array as "one thing", an array ref will probably be easier to understand.

Just my 2 cents...

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (2)
As of 2023-06-08 22:25 GMT
Find Nodes?
    Voting Booth?
    How often do you go to conferences?

    Results (35 votes). Check out past polls.