my %messages; while() { /(FW\-\d+\-\d+)/; # extract MSG ID next if exists($messages{$1}; # ignore it if we've $messages{$1} = $1; # alreaqdy seen it. }