my (@age, @number_of_males, @number_of_females); while () { if (/\b\d\d?(?:\d+\.\d+\s*){3}\s/) { s/under\s+/ 3) { (my ($age, undef, $males, $females), @ar) = @ar; next if $age =~ /\d\D\d/; push @age, $age; push @number_of_males, $males; push @number_of_females, $females; } } } print "$age[$_], $number_of_males[$_], $number_of_females[$_]\n" for sort {$age[$a] <=> $age[$b] } 0..$#age;