http://www.perlmonks.org?node_id=403395


in reply to Re: Foreach in a 2D array
in thread Foreach in a 2D array

This is probably just a minor nit, but thought I might learn something. My understanding is that there is very little difference (from the perl interpreter standpoint) between:

my %hash = ('a', 'b', 'c', 'd');
and
my %hash = ('a' => 'b', 'c'=> 'd');

Advantages I can think of for the first representation are:

The advantages I can think of for the second representation are:

Essentially => is syntactic sugar for ,.

Update. Missed a tic.


"Look, Shiny Things!" is not a better business strategy than compatibility and reuse.


OSUnderdog

Replies are listed 'Best First'.
Re^3: Foreach in a 2D array
by hmerrill (Friar) on Oct 28, 2004 at 18:10 UTC
    You're right. Sorry, I was a little quick to correct the "," to "=>", but I think the comma works fine as you pointed out. I'm so used to using "=>" that at first glance I thought using the comma was illegal. The "as long as you know that the list has an even number of elements..." part is enough for me to use the 2nd version ("=>") since I know the 2nd one works all the time :-) In fact all the perl documentation on hashes shows the "=>" operator.

    As I think you'll agree, in this code:

    my %hash = ('a', 'b', 'c', 'd');
    it is not clear that 'a' is the key referring to value 'b'.