EdwardG,
Do you mean something like this:
#!/usr/bin/perl
use strict;
use warnings;
my %name = map {chomp; $_ => undef} <DATA>;
for my $person ( keys %name ) {
my $p_case = $person;
$p_case =~ s/(\w+)/\u$1/g;
$name{$p_case} = delete $name{$person};
}
my $finished = 0;
while ( ! $finished ) {
my $update = 0;
for my $person ( keys %name ) {
my @shorter = split " " , $person;
$_ =~ s/(\w+)\w/$1/ for @shorter;
my $new_name = join " " , @shorter;
if ( ! exists $name{$new_name} ) {
$update = 1;
$name{$new_name} = delete $name{$person};
}
}
$finished = 1 if ! $update;
}
Cheers -
L~R