ヘボン式ローマ字への変換
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関数
