#!/usr/bin/perl -w use strict; my $name; my %hash; my @files = glob "my*"; foreach my $file(@files) { open FILE, '<', $file or die; while () { if (/hidden" name="mbkshelf" value="(.+?)"/) { $name = $1; $hash{$name} = [ ]; } if (/recordListTitle"><.+>(.+?)<\/a>/) { push @{ $hash{$name} }, $1; } } } foreach my $key (sort { lc($a) cmp lc($b) } keys %hash) { print "Name:\n"; print "\t$key\n\n"; print "Titles:\n"; foreach my $val ( @{ $hash{$key} } ) { print "\t$val\n"; } print "\n********************************************************************************\n\n"; }