How can I partition a Perl array into equal sized chunks?

后端 未结 9 1487
眼角桃花
眼角桃花 2020-12-15 08:01

I have a fixed-sized array where the size of the array is always in factor of 3.

my @array = (\'foo\', \'bar\', \'qux\', \'foo1\', \'bar\', \'qux2\', 3, 4, 5         


        
9条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-15 08:38

    my @VAR;
    push @VAR, [ splice @array, 0, 3 ] while @array;
    

    or you could use natatime from List::MoreUtils

    use List::MoreUtils qw(natatime);
    
    my @VAR;
    {
      my $iter = natatime 3, @array;
      while( my @tmp = $iter->() ){
        push @VAR, \@tmp;
      }
    }
    

提交回复
热议问题