my %seen = (); # use hash for counting elements my @doubles = grep { # if value not in seen, return 0 and add it # to %seen with start value of 1 $seen{$_}++ } @array1; foreach my $element ( @doubles ) { print "$element\n"; } # foreach @doubles undef %seen; #### my %seen = (); $seen{$_}++ for @array1; for my $value ( keys %seen ) { print "$value\n" if $seen{$value} > 1; } # for %seen