NAME

Acme::Numbers - a fluent numeric interface

SYNOPSIS

use Acme::Numbers;

print one."\n";                       # prints 1
print two.hundred."\n";               # prints 200
print forty.two."\n";                 # prints 42
print six.hundred.and.sixty.six."\n"; # prints 666
print one.million."\n";               # prints 1000000

print three.point.one.four."\n";      # prints 3.14
print one.point.zero.two."\n";        # prints 1.02
print zero.point.zero.five."\n";      # prints 0.05

print four.pounds."\n";               # prints "4.00"
print four.pounds.five."\n";          # prints "4.05"
print four.pounds.fifty."\n";         # prints "4.50"
print four.pounds.fifty.five."\n";    # prints "4.55"

print fifty.pence."\n";               # prints "0.50"
print fifty.five.pence."\n";          # prints "0.55"
print four.pounds.fifty.pence."\n";   # prints "4.50"
print four.pounds.and.fifty.p."\n";   # prints "4.50"

print fifty.cents."\n";               # prints "0.50"
print fifty.five.cents."\n";          # prints "0.55"
print four.dollars.fifty.cents."\n";  # prints "4.55"

DESCRIPTION

Inspired by this post

http://beautifulcode.oreillynet.com/2007/12/the_cardinality_of_a_fluent_in.php

and a burning curiosity. At leats, I hope the burning was curiosity.

ONE BIIIIIIIIIIIILLION

By default billion is 10**12 because, dammit, that's right.

If you want it to be an American billion then do

use Acme::Numbers billion => 10**9;

Setting this automatically changes all the larger numbers (trillion, quadrillion, etc) to match.

METHODS

You should never really use these methods on the class directly.

All numbers handled by Lingua::EN::Words2Nums are handled by this module.

In addition ...

new <value> <operator>

operator can be 'num', 'and' or 'point'

name

The name of this object (i.e the method that was originally called).

value

The current numeric value

handle <Acme::Numbers>

Handle putting these two objects together

concat <value>

Concatenate two things.