in reply to Tricky Syslog Parsing

I'd use something like this (untested):
$/ = ""; # Paragraph node. my %seen; open my $fh => "...." or die; while (<$fh>) { next unless /(%FW-\d+-\d+)/; print "$1\n$_" unless $seen {$1} ++; }

This is just a variant on "remove duplicates".

Abigail