Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: List into two-dimensional array

by hippo (Bishop)
on Dec 14, 2020 at 19:02 UTC ( [id://11125181]=note: print w/replies, xml ) Need Help??


in reply to List into two-dimensional array

With List::MoreUtils:

use strict; use warnings; use Test::More tests => 2; use List::MoreUtils 'part'; my ($C, $R) = (4, 3); my @list = 1..12; my $i = 0; my @AoA = part { int ($i++ / $C) } @list; is_deeply \@AoA, [[1 .. 4], [5 .. 8], [9 .. 12]]; is_deeply \@list, [1..12];

🦛

Replies are listed 'Best First'.
Re^2: List into two-dimensional array
by eyepopslikeamosquito (Archbishop) on Dec 14, 2020 at 20:12 UTC

    With more List::MoreUtils:

    use strict; use warnings; use Test::More tests => 2; use List::MoreUtils 'natatime'; my ($C, $R) = (4, 3); my @list = 1..12; my @AoA; my $iter = natatime($C, @list); while ( my @chunk = $iter->() ) { push @AoA, [@chunk]; } is_deeply \@AoA, [[1 .. 4], [5 .. 8], [9 .. 12]]; is_deeply \@list, [1..12];

    Updated: fixed two blunders in original post. Thanks LanX.

    Update: This question reminds me of another recent node: How to Split on specific occurrence of a comma (where my response contains some CPAN List module refs)

      Thanks to CPAN, most things devolve into "already-thoroughly-solved problems." MoreUtils is priceless.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2024-04-19 02:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found