my $data = $dbh->ct_sql($query); my $previous_row; foreach (@$data) { if($previous_row && $_->[0] eq $previous_row->[0]) { print "$previous_row->[0] $previous_row->[1] $previous_row->[2] $r_->[1] $r_->[2]\n"; $previous_row = undef; } elsif($previous_row) { # There is no matching OK NOW row for this entry print "$previous_row->[0] $previous_row->[1] $previous\n"; } else { $previous_row = $_; } } # print orphan, if there is one if($previous_row) { print "$previous_row->[0] $previous_row->[1] $previous\n"; }