me@office:~$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE=C
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
####
sub first_alpha {
my $alpha = shift;
$alpha = ucfirst($alpha) if $alpha =~ /^\l./;
$alpha =~ s/\s*\b(A|a|An|an|The|the)(_|\s)//xi;
if ($alpha =~ /^\d/) {
$alpha = '#';
}
elsif ($alpha !~ /^\p{uppercase}/) {
$alpha = '!';
}
else {
$alpha =~ s/^(.)(\w|\W)+/$1/;
}
return $alpha;
}
##
##
sub first_alpha {
my $string = shift;
$string =~ s/\s*\b(A|a|An|an|The|the)(_|\s)//xi;
my $alpha = uc substr($string, 0, 1);
if ($alpha =~ /^\d/) {
$alpha = '#';
}
elsif ($alpha !~ /^\p{uppercase}/) {
$alpha = '!';
}
return $alpha;
}