#!/usr/bin/perl -w use strict; # sample data my @column_1 = qw(13 14 10 34 73 64 48 52 51 74 8 85 36 74 34 53 9 86 59 15 25); my @column_2 = qw(3 74 98 185 36 74 34 201 99 86 59 15 25 123 134 16 202 73 64 48 52); # "good" numbers my %col_1_good = map { $_, 1 } (11..49); my %col_2_good = map { $_, 1 } (101..199); # "fair" numbers my %col_1_fair = map { $_, 1 } (8..10, 50..52); my %col_2_fair = map { $_, 1 } (98..100, 200..202); my @good_pairs = (); my @fair_pairs = (); for my $i (0..$#column_1) { if ( $col_1_good { $column_1[$i] } && $col_2_good { $column_2[$i] } ) { push @good_pairs, "$column_1[$i] $column_2[$i]"; } elsif ( $col_1_fair { $column_1[$i] } && $col_2_fair { $column_2[$i] } ) { push @fair_pairs, "$column_1[$i] $column_2[$i]"; } } print join "\n", "Good Numbers:", @good_pairs, "\nFair Numbers:", @fair_pairs;