Lingua::JA::Number translates numbers into Japanese. Its to_string function takes a integer number and transforms it to the equivalent cardinal number romaji string. This'll show exactly how the number is pronounced in Japanese.

Like in all natural languages, there's a couple of exceptions: 300 isn't san-hyaku but san-byaku, 600 isn't roku-hyaku but ro-p-pyaku and 800 isn't hachi-hyaku but ha-p-pyaku. Also, in the thousands, 3000 is san-zen and 8000 is ha-s-sen. Also, there's more exceptions for numbers of 1,000,000,000,000 and greater.

And, numbers aren't split into groups of 3 (like in 1,000,000) but in groups of 4, like in 100,0000, which is pronounced hyaku-man (100 times 10000).

Here's a quick script jn which will quiz you with random numbers (or romaji strings if invoked as jn -r) and reveal the solution after you hit the Enter key. It requires Term::ReadKey, which is available from CPAN: