sub add { my ($self, $delta) = @_; if (ref $delta) { if (UNIVERSAL::isa($delta, ref $self)) { $self->{num} = $self->{num} * $delta->{den} + $delta->{num} * $self->{den}; $self->{den} = $self->{den} * $delta->{den}; } else { croak "Can't add a ", ref $l, " to a ", ref $l; } } else { if ($delta =~ m|(\d+)/(\d+)|) { $self->add(Number::Fraction->new($1, $2)); } elsif ($delta !~ /\D/) { $self->add(Number::Fraction->new($delta, 1)); } else { croak "Can't add $delta to a ", ref $1; } } $self->normalise; }
[Title Page]
[TOC]
[Prev]
[Next]
Page 14 of 31