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