In the first case, you are assigning to an array @a. The first element of the array will be the reference to the anonymous array containing 4 values. In the second case, you assign the reference directly to a scalar variable $a. Or, as SuicideJunkie put it in the CB: in the first case, $a[0][2] == 3 and in the second case, $a->[2] == 3