in reply to manipulating a matrix
The code block you give grep gets called once for every array element with $_ as an alias for the element. In this case the elements are references to the anonymous arrays, which can be accessed by using the dereferencing operator -> like shown above.use strict; use warnings; my @matrix = ( [48, 219, 11021], [72, 190, 11006], [203, 177, 11005], [301, 186, 11013], [309, 119, 11015], [309, 216, 11017], [309, 147, 11000], [343, 180, 10990], [346, 179, 10989], [451, 258, 11008], [838, 162, 11014] ); # e.g. filter out all sub-arrays with x <= 309: @matrix = grep { $_->[0] <= 309 } @matrix; local $, = " "; local $\ = "\n"; print @$_ for @matrix; __END__ Output is: 48 219 11021 72 190 11006 203 177 11005 301 186 11013 309 119 11015 309 216 11017 309 147 11000
PS: In Perl a two dimensional array, aka an array of arrays aka a matrix, uses always anonymous arrays inside. So you don't need to mentioned that explicitly with "an array of anonymous arrays".
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: manipulating an array of anonymous arrays ...
by chexmix (Hermit) on Apr 25, 2008 at 16:26 UTC | |
by mscharrer (Hermit) on Apr 25, 2008 at 16:33 UTC | |
by chexmix (Hermit) on Apr 25, 2008 at 16:39 UTC |