The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Lingua::JA::Romaji - Perl extension for romaji and kana conversion


  use Lingua::JA::Romaji ':romajitokana,:kanatoromagi';

  &romajitokana(romaji, [hira|kata])
  &kanatoromaji(EUC-encoded kana)


Transliterates from roman characters to kana syllables, and back again.

Given an EUC-encoded string of kana $kana, $roma=&kanatoromaji($kana) will convert to Hepburn romaji. Hiragana is converted to lower case, ad katakana is converted to uppercase. Given a string of romaji, $kana=&romajitokana($roma,$kanatype) will convert to EUC-encoded kanji. If $kanatype matches the pattern /kata/i, it will be katakana, otherwise it will be hiragana.

To change the romafication style, you can modify the entries of %Lingua::JA::Romaji::allkana. Each key is a single kana, and each value is the corresponding romaji equivalent.


None by default.

&romajitokana, &kanatoromaji are available with EXPORT_OK, as are %hiragana and %katakana.


When using &kanatoromaji($kana), $kana should contain only proper EUC-encoded kana of the form 0xA4 or 0xA5 followed by a single byte.

Care should be taken when modifying %Lingua::JA::Romaji::allkana to avoid the strings /ix/i or /ux/i as they will be removed in conversion.

Conversion is not necessarily reversible. This is because there can be many romaji representations of given kana.

Certain morae, namely /v[aeiou]/, can only be represented with katakana, and &romajitokana will produce katakana characters for these morae even in hiragana mode.

Kanji is not implemented at all. It is a non-trivial problem, and beyond the scope of this module.

Behavior on non-little endian machines for &kanatoromaji is not yet known.


This is a derived work of Jim Breen's XJDIC, and as such is licensed under the GNU General Public License, a copy of which was distributed with perl. #'


Jacob C. Kesinger <>