Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: Creating a Slice through a 2 dimensional array

by xdg (Monsignor)
on Sep 29, 2005 at 09:57 UTC ( #496029=note: print w/replies, xml ) Need Help??

in reply to Creating a Slice through a 2 dimensional array

Several issues -- first, your slice isn't a slice. You need @sortarr[0..10]. Second, the content of each element is an array reference -- you need to slice out each part of that. p.272 is throwing you off because it's giving a slice of a row -- you're trying for a slice of a column (in a row-major AoA).

You probably want to use map to extract the subslices. E.g.

my @aoa = ( [1 .. 4], [5 .. 8], [9 .. 12], ); my @column_slice = map { [ $_->[2] ] } @aoa[1,2]; my @two_d_slice = map { [ @{$_}[1,2] ] } @aoa[1,2];

For a column slice, for each element of the slice, @aoa[1,2] (i.e. the rows), this dereferences the array reference to get the column, and returns it as a new anonymous array reference. (This keeps it an AoA; if you want a flattened list, omit the square brackets just inside the map braces.). For two-dimensions, it's similar, but you slice inside the map, too.


Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://496029]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (6)
As of 2023-01-27 15:41 GMT
Find Nodes?
    Voting Booth?

    No recent polls found