my %done=(); open INPUT, "<$inputfile"; open OUTPUT, ">>$outputfile"; while() { next unless /\tCM+(\d+)/io; next if exists $done{$1}; print OUTPUT, "$1\n"; $done{$1}=undef; ) close INPUT; close OUTPUT;