ヘボン式ローマ字への変換


 Lingua::JA::Hepburn::Passportモジュールを使います。
use strict;
use Encode;
use Lingua::JA::Hepburn::Passport;

my $hepburn = Lingua::JA::Hepburn::Passport->new;
print $hepburn->romanize(get_utf8_string('かとう')), "\n"; # KATO
print $hepburn->romanize(get_utf8_string('すずき')), "\n"; # SUZUKI
print $hepburn->romanize(get_utf8_string('おおや')), "\n"; # OYA

$hepburn = Lingua::JA::Hepburn::Passport->new(long_vowels_h => 1);
print $hepburn->romanize(get_utf8_string('かとう')), "\n"; # KATOH
print $hepburn->romanize(get_utf8_string('すずき')), "\n"; # SUZUKI
print $hepburn->romanize(get_utf8_string('おおや')), "\n"; # OHYA

sub get_utf8_string {
	my $str = shift;
	return Encode::decode('cp932', $str);
}
 先頭だけ大文字にしたい場合はlcとucfirstを使うとできます。
my $name = $hepburn->romanize(get_utf8_string('すずき'));
print ucfirst lc $name, "\n"; # Suzuki

関連項目

lc関数
ucfirst関数