Joey Hess

NAME

Lingua::EN::Words2Nums - convert English text to numbers

SYNOPSIS

 use Lingua::EN::Words2Nums;
 $num=words2nums("two thousand and one");
 $num=words2nums("twenty-second");
 $num=words2nums("15 billion, 6 million, and ninteen");

DESCRIPTION

This module converts English text into numbers. It supports both ordinal and cardinal numbers, negative numbers, and very large numbers.

The main subroutine, which is exported by default, is words2nums(). This subroutine, when fed a string, will attempt to convert it into a number. If it succeeds, the number will be returned. If it fails, it returns undef.

VARIABLES

There are a number of variables that can be used to tweak the behavior of this module. For example, debugging can be be enabled by setting $Lingua::EN::Words2Nums::debug=1

$Lingua::EN::Words2Nums::debug

Default: 0. If set to a true value, outputs on standard error some useful messages if parsing fails for some reason.

$Lingua::EN::Words2Nums::billion

Default: 10 ** 9. This is the number that will be returned for "one billion". It defaults to the American version; the English will want to set it to 10 ** 12. Setting this number automatically changes all the larger numbers (trillion, quadrillion, etc) to match.

NOTES

It does not understand decimals or fractions, yet.

Scores are supported, eg: "four score and ten". So are dozens. So is a baker's dozen. And a gross.

Various mispellings of numbers are understood.

While it handles googol correctly, googolplex is too large to fit in perl's standard scalar type, and "inf" will be returned.

AUTHOR

Copyright 2001-2003 Joey Hess <joey@kitenet.net>

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.