in reply to A question of perlish elegance on array loop
Shouldn't
$#{@{$object_ref->{array_ref}}}
be
$#{$object_ref->{array_ref}}
(The last index of the array referenced by $object_ref->{array_ref}.)
By eliminating multiple instances of $object_ref->{array_ref},
foreach (0..$#{$object_ref->{array_ref}}) { printf("%d %s\n", $_, $object_ref->{array_ref}[$_]); }
might be more readable as
You might also be interested inmy $array = $object_ref->{array_ref}; foreach (0..$#$array) { printf("%d %s\n", $_, $array->[$_]); }
my $array = $object_ref->{array_ref}; foreach my $idx (0..$#$array) { foreach my $ele ($array->[$idx]) { printf("%d %s\n", $idx, $ele); } }
|
|---|