my @file1 = ; my %file1 = normalize_file1(@file1); my @file2 = ; my %file2 = normalize_file2(@file2); # Do the comparisons here. Use what I gave before. #### sub normalize_file1 { my @file1 = @_; my %file1; LINE: foreach my $line (@file1) { my @fields = split /,/, $line; next LINE unless @fields; # Note the use of uc here. my @name = split /\s+/, uc $fields[2]; if (@name == 3) { # Have middle name my $name = "$name[0] " . substr($name[2], 0, 2); } elsif (@name == 2) { # No middle name my $name = "$name[0] " . substr($name[1], 0, 2); } else { # Error state die "Bad name in normalize_file1(): $line\n"; } $file1{$name} = 1; } return %file1; }