use strict; my %files; my @files; @files =; @files = map { s/\n//; $_ } @files; close(DATA); foreach (@files) { $files{substr($_,0,(length()-4))}++; } foreach (keys %files) { print "$_ is not matched and has a count of $files{$_}\n" if $files{$_} == 1; } __DATA__ 001.did 001.mrg 002.did 002.mrg 003.did 004.did 005.did 005.mrg