in reply to Arithmetic with fractions

To convert the fractions into floating point numbers that perl can directly deal with, you need to split them up. Some ways:
$num = "6/2"; # like this $num =~ s:^(\d+)/(\d+)\z:$1/$2:e; # or my ($n,$d) = split "/", $num; $num = $n/$d; # or (unsafe for untrusted input) $num = eval $num;
But that isn't sufficient if you need to preserve the fractional values. Floating point will introduce some round-off error. For instance, adding 1/6 six times may not get you 1:
$ perl -we'print "not equal" if 1/6 + 1/6 + 1/6 + 1/6 + 1/6 != 1' not equal
Math::BigRat (which I've never actually used) is a core module to handle this for you.
$ perl -we'use Math::BigRat; $onesixth = Math::BigRat->new("1/6"); > print "equal" if $onesixth+$onesixth+$onesixth+$onesixth+$onesixth+ > $onesixth == 1' equal