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