my $name = $record[0]; # it's being pulled from a roster written (for some completely inane reason) in ALL CAPS) if($name =~ /-| /) { my @temp = split(/(-| )/,$name) { ucfirst(lc($_)) foreach(@temp); $name=''; $name =. $_ foreach(@temp); } else { $name = ucfirst(lc($name)); }