`Math::Calc::Units` is a simple calculator that keeps track of units. It
currently handles combinations of byte sizes and duration only,
although adding any other multiplicative types is easy. Any unknown
type is treated as a unique user type (with some effort to map English
plurals to their singular forms).
The primary intended use is via the `ucalc` script that prints out
all of the readable variants of a value. For example, `"3 bytes"`
will only produce `"3 byte"`, but `"3 byte / sec"` produces the
original along with `"180 byte / minute"`, `"10.55 kilobyte / hour"`,
etc.

The `Math::Calc::Units` interface only provides for string-based
computations, which could result in a large loss of precision for some
applications. If you need the exact result, you may pass in an extra
parameter `exact` to `calc` or `convert`, causing them to return a
2-element list containing the numerical result and a string describing
the units of that result:

`
`

`
my ($value, $units) = convert("10MB/sec", "GB/day");
`

(In scalar context, they just return the numeric value.)