for (my $i = 0; $i < (scalar(@{$all_groups}) - 1); $i++) { print "Group name: " . $all_groups->[$i][1] . "\n"; while ((defined($all_groups->[($i + 1)][0])) && ($all_groups->[$i][0] == $all_groups->[($i + 1)][0])) { print "\tEmail: " . $all_groups->[$i][2] . "\n"; $i++; } print "\tEmail: " $all_groups->[$i][2] . "\n"; }