#!/usr/bin/perl -w -n BEGIN { undef $/; use strict; use vars qw($basename %Entries); ($basename = $0) =~ s!.*/!!; sub usage () { return < $ARGV, Text => $Entry_text, }; if (exists($Entries{$Label})) { if (ref($Entries{$Label}) eq 'ARRAY') { push @{$Entries{$Label}}, $Entry; } else { $Entries{$Label} = [$Entries{$Label}, $Entry]; } } else { $Entries{$Label} = $Entry; } } END {#Show duplicates here. foreach my $Label (sort keys %Entries) { if (ref($Entries{$Label}) eq 'ARRAY') { print "Duplicate entries for LABEL => {$Label}:\n"; foreach my $Entry (@{$Entries{$Label}}) { print "\tfrom FILE => $Entry->{File}, Entry is:\n"; print "$Entry->{Text}\n"; } print "=======\n\n"; } } }