Number::Format::SouthAsian - format numbers in the South Asian style
version 0.10
Formats numbers in the South Asian style. You can read more on Wikipedia here:
http://en.wikipedia.org/wiki/South_Asian_numbering_system
The format_number() method has a words parameter which tells it to use words rather than simply separating the numbers with commas.
my $formatter = Number::Format::SouthAsian->new(); say $formatter->format_number(12345678); # 1,23,45,678 say $formatter->format_number(12345678, words => 1); # 1.2345678 crores
You can also specify words to new(), which has the effect of setting a default value to be used.
my $formatter = Number::Format::SouthAsian->new(words => 1); say $formatter->format_number(12345678); # 1.2345678 crores say $formatter->format_number(12345678, words => 0); # 1,23,45,678
You can also specify "decimals" to either new() or format_number(), which has the effect of rounding any decimals found. Note that this means slightly different things depending on wordiness.
my $rounding_formatter = Number::Format::SouthAsian->new(decimals => 2); say $rounding_formatter->format_number(1234.5678); # 1,234.57 say $rounding_formatter->format_number(12345678, words => 1); # 1.23 crores
In India it is common to use lakhs and crores, but quite uncommon to see any of the other larger number names. An "arab" is much more likely to be called "100 crores" and a "kharab" is more likely to be called a "lakh crore." This behaviour can be enabled with the lakhs_and_crores_only parameter.
my $lakhs_and_crores_only_formatter = Number::Format::SouthAsian->new(words => 1, lakhs_and_crores_only => 1); say $lakhs_and_crores_only_formatter->format_number(1_00_00_00_000); # 100 crores
Optionally takes a named parameter 'words' which sets the default of the 'words' parameter to format_number.
my $normal_formatter = Number::Format::SouthAsian->new(); my $wordy_formatter = Number::Format::SouthAsian->new(words => 1); my $rounding_formatter = Number::Format::SouthAsian->new(decimals => 2);
Takes a positional parameter which should just be a number. Optionally takes a named parameter 'words' which turns on or off the wordy behaviour. Returns a string containing the number passed in formatted in the South Asian style.
my $formatted_number = $formatter->format_number(12345678); my $formatted_number = $formatter->format_number(12345678, words => 1);
Copyright (C) 2010 Lokku Ltd.
Alex Balhatchet (alex@lokku.com)
To install Number::Format::SouthAsian, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Number::Format::SouthAsian
CPAN shell
perl -MCPAN -e shell install Number::Format::SouthAsian
For more information on module installation, please visit the detailed CPAN module installation guide.