Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Units(3)	      User Contributed Perl Documentation	      Units(3)

       Math::Calc::Units - Human-readable unit-aware calculator

	   use Math::Calc::Units qw(calc readable convert equal);

	   print "It will take ".calc("10MB/(384Kbps)")." to download\n";

	   my @alternative_descriptions	= readable("10MB/(384Kbps)");

	   print "A week is ".convert("1 week",	"seconds")." long\n";

	   if (equal("$rate bytes / sec", "1 MB/sec")) { ... };

       "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.)

   Examples of use
       o   Estimate transmission rates (e.g., 10MB at 384 kilobit/sec)

       o   Estimate performance	characteristics	(e.g., disk I/O	rates)

       o   Figure out how long something will take to complete

       I tend to work on performance-sensitive code that involves a lot	of
       network and disk	traffic, so I wrote this tool after I became very sick
       of constantly converting	KB/sec to GB/day when trying to	figure out how
       long a run is going to take, or what the	theoretical maximum
       performance would be if we were 100% disk bound.	Now I can't live
       without it.

       If you are just trying to convert from one unit to another, you'll
       probably	be better off with "Math::Units" or "Convert::Units". This
       module really only makes	sense when you're converting to	and from
       human-readable values.

       Steve Fink <>

       ucalc, Math::Units, Convert::Units.

perl v5.32.0			  2009-08-04			      Units(3)


Want to link to this manual page? Use this URL:

home | help