use List::Util qw( sum ); push @Res, sum splice(@arr,0,3) while @arr;