my @values = split /\s+/, $weatherdata; croak "Invalid item count in weather data" unless @values % 21 == 0; while(my @row = splice @values, 0, 21 ) { .... }