Depends on your desired result. The first line would allow you to manipulate @array by manipulating the array referenced by $hash{$arg}, thus $hash{$arg}->[0] = 0 changes $array[0]. The second method builds a reference using the values in @array. Thus, modifying the array referenced by $hash{$arg} modifies something totally independent of @array. Either way is perfectly legal/valid, but it depends on what you're wanting to actually do.