A better try use Data::Dimensions qw(&units extended); my $width = units({feet => 1},30); my $length = units({feet => 1},50); my $radius = units({inch => 1},10); my $rate = units({GBP => 1, hectare => -1}, 1000); my $cost = units({GBP => 1}); set $cost = $rate * ($width*$length - 3.14159*$radius**2); print "Cost is: $cost\n";