Paul Kraus wrote: > > I think I am picking up some bad habits so maybe you guys can help. > > I currently use this notation @{$hash{key}} to access an array stored in > a hash. > I keep seeing posts that it is better to use an object like notation. > Can I see some examples on how you would access the array or an element > of an array. > > Also is there a way to access slices in a foreach something like > > Foreach ((@arrar)[1,3..6]){ > code > }
Hi Paul. By 'object-like notation' I think you mean the arrow operator? First, be careful to forget that it's object-like at all! If $ar is an array reference then the whole array is @{$ar} and the first element is ${$ar}[0] or $ar->[0]. Often (like here) you can miss out the braces, so the array is @$ar and the element is $$ar[0]. $hash{key} is an array reference, so you can do the same with that hash element as you can with a scalar. @{$hash{key}}; # is the array ( @$hash{key} won't work here because it's ambiguous ) and ${$hash{key}}[0]; # is the element or $hash{key}->[0]; Because the indirection arrow between pairs of brackets (suqare or curly) can be removed, the last can be reduced to. $hash{key}[0]; HTH, Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>