my %hash; my $flag = ".flag"; foreach my $file(@files) { if ($file !~ /\Q$flag$/) { print "$file\n"; $hash{$file} = 0; } else{ my ($short = $file) =~ s!$flag$!!; $hash{$short}++; } } %hash = map{ $_ => $_ . $flag }grep{ $hash{$_} }keys %hash;