NAME Lingua::FR::Numbers - Converts numeric values into their French string equivalents SYNOPSIS # Procedural Style use Lingua::FR::Numbers qw(number_to_fr ordinate_to_fr); print number_to_fr( 345 ); my $vingt = ordinate_to_fr( 20 ); print "Tintin est reporter au petit $vingt"; # OO Style use Lingua::FR::Numbers; my $number = Lingua::FR::Numbers->new( 123 ); print $number->get_string; print $number->get_ordinate; my $other_number = Lingua::FR::Numbers->new; $other_number->parse( 7340 ); $french_string = $other_number->get_string; DESCRIPTION This module converts a number into a French cardinal or ordinal. It supports decimal numbers, but this feature is experimental. The interface tries to conform to the one defined in Lingua::EN::Number, though this module does not provide any parse() method. Also, unlike Lingua::En::Numbers, you can use this module in a procedural manner by importing the number_to_fr() function. If you plan to use this module with greater numbers (>10e20), you can use the Math::BigInt module: use Math::BigInt; use Lingua::FR::Numbers qw( number_to_fr ); my $big_num = new Math::BigInt '1.23e68'; print number_to_fr($big_num); # cent vingt-trois quintillions de sextillions This module should output strings for numbers up to, but not including, 1e75, but due to a lack of documentation in French grammar, it can only reliably output strings for numbers lower than 1e51. For example, 1e72 is 'un sextillion de sextillion', but I am unable to say 1e51 or 1e69, at least for now. VARIABLES FUNCTION-ORIENTED INTERFACE number_to_fr( $number ) use Lingua::FR::Numbers qw(number_to_fr); my $depth = number_to_fr( 20_000 ); my $year = number_to_fr( 1870 ); print "Jules Vernes écrivit _$depth lieues sous les mers_ en $year."; This function can be exported by the module. ordinate_to_fr( $number ) use Lingua::FR::Numbers qw(ordinate_to_fr); my $twenty = ordinate_to_fr( 20 ); print "Tintin est reporter au petit $twenty"; This function can be exported by the module. OBJECT-ORIENTED INTERFACE new( [ $number ] ) my $start = Lingua::FR::Numbers->new( 500 ); my $end = Lingua::FR::Numbers->new( 3000 ); print "Nous partîmes ", $start->get_string, "; mais par un prompt renfort\n", "Nous nous vîmes ", $end->get_string," en arrivant au port" Creates and initializes a new instance of an object. parse( $number ) Initializes (or reinitializes) the instance. get_string() my $string = $number->get_string; Returns the number as a formatted string in French, lowercased. get_ordinate() my $string = $number->get_ordinate; Returns the ordinal representation of the number as a formatted string in French, lowercased. DIAGNOSTICS Invalid number format: '$number' (W) The number specified is not in a valid numeric format. Number '$number' too big to be represented as string (W) The number is too big to be converted into a string. Numbers must be lower than 1e75-1. SOURCE *Le français correct - Maurice GREVISSE* *Décret n° 61-501 du 3 mai 1961. relatif aux unités de mesure et au contrôle des instruments de mesure.* - http://www.adminet.com/jo/dec61-501.html BUGS Though the module should be able to convert big numbers (up to 10**36), I do not know how Perl handles them. Please report any bugs or comments using the Request Tracker interface: https://rt.cpan.org/NoAuth/Bugs.html?Dist=Lingua-FR-Numbers COPYRIGHT Copyright 2002, Briac Pilpré. All Rights Reserved. This module can be redistributed under the same terms as Perl itself. AUTHOR Briac Pilpré SEE ALSO Lingua::EN::Numbers, Lingua::Word2Num