Number::Fraction allows you to work with fractions (i.e. rational
numbers) in your Perl programs in a very natural way.
It was originally written as a demonstration of the techniques of
overloading.

If you use the module in your program in the usual way

`
`

`
use Number::Fraction;
`

you can then create fraction objects using `Number::Fraction-`new> in
a number of ways.

`
`

`
my $f1 = Number::Fraction->new(1, 2);
`

creates a fraction with a numerator of 1 and a denominator of 2.

`
`

`
my $f2 = Number::Fraction->new(1/2);
`

does the same thing but from a string constant.

`
`

`
my $f3 = Number::Fraction->new($f1);
`

makes `$f3` a copy of `$f1`

`
`

`
my $f4 = Number::Fraction->new; # 0/1
`

creates a fraction with a denominator of 0 and a numerator of 1.

If you use the alterative syntax of

`
`

`
use Number::Fraction :constants;
`

then Number::Fraction will automatically create fraction objects from
string constants in your program. Any time your program contains a
string constant of the form `\d+/\d+` then that will be automatically
replaced with the equivalent fraction object. For example

`
`

`
my $f1 = 1/2;
`

Having created fraction objects you can manipulate them using most of the
normal mathematical operations.

`
`

`
my $one = $f1 + $f2;
my $half = $one - $f1;
`

Additionally, whenever a fraction object is evaluated in a string
context, it will return a string in the format x/y. When a fraction
object is evaluated in a numerical context, it will return a floating
point representation of its value.

Fraction objects will always normalise themselves. That is, if you
create a fraction of ’2/4’, it will silently be converted to ’1/2’.