Path: usenet.cise.ufl.edu!newsfeeds.nerdc.ufl.edu!newsfeeds.nerdc.ufl.edu!news.magicnet.net!feed2.news.erols.com!erols!nntp.abs.net!outfeed1.news.cais.net!news.neta.com!not-for-mail
From: kfox@ford.com (Ken Fox)
Newsgroups: comp.lang.perl.announce,comp.lang.perl.modules
Subject: ANNOUNCE: Math::Units module used for unit conversion
Followup-To: comp.lang.perl.modules
Date: 16 Aug 1998 19:51:45 GMT
Organization: Ford Motor Company, Powertrain
Lines: 50
Approved: merlyn@stonehenge.com (comp.lang.perl.announce)
Message-ID: <6r7d8h$fka$1@news.neta.com>
Reply-To: kfox@ford.com
NNTP-Posting-Host: gadget.cscaper.com
X-Trace: news.neta.com 903297105 16010 206.67.186.3 (16 Aug 1998 19:51:45 GMT)
X-Complaints-To: abuse@neta.com
NNTP-Posting-Date: 16 Aug 1998 19:51:45 GMT
X-Disclaimer: The "Approved" header verifies header information for article transmission and does not imply approval of content.
Xref: usenet.cise.ufl.edu comp.lang.perl.announce:113 comp.lang.perl.modules:3253

The first release of the Math::Units module has been added
to CPAN.  It is available as:

  file: $CPAN/authors/id/KENFOX/Math-Units-1.2.tar.gz
  size: 12148 bytes
   md5: 5089d07f2042c567759d1c761c40dd98

This module is 100% Perl.  Perl 5.004 or higher is required.  (I
haven't tested it yet with Perl 5.005.  Sorry.)

SYNOPSIS

use Math::Units qw(convert);

my $out_value = convert($in_value, 'in unit', 'out unit');

DESCRIPTION

The Math::Units module converts a numeric value in one unit of measurement
to some other unit.  The units must be compatible, i.e. length can not be
converted to volume.  If a conversion can not be made an exception is thrown.

A combination chaining and reduction algorithm is used to perform the most
direct unit conversion possible.  Units may be written in several different
styles.  An abbreviation table is used to convert from common long-form unit
names to the (more or less) standard abbreviations that the units module uses
internally.  All multiplicative unit conversions are cached so that future
conversions can be performed very quickly.

Too many units, prefixes and abbreviations are supported to list here.  See
the source code for a complete listing.

EXAMPLES

print "5 mm == ", convert(5, 'mm', 'in'), " inches\n";
print "72 degrees Farenheit == ", convert(72, 'F', 'C'), " degrees Celsius\n";
print "1 gallon == ", convert(1, 'gallon', 'cm^3'), " cubic centimeters\n";
print "4500 rpm == ", convert(4500, 'rpm', 'Hz'), " Hertz\n";

- Ken

-- 
Ken Fox (kfox@ford.com)                  | My opinions or statements do
                                         | not represent those of, nor are
Ford Motor Company, Powertrain           | endorsed by, Ford Motor Company.
Analytical Powertrain Methods Department |
Software Development Section             | "Is this some sort of trick
                                         |  question or what?" -- Calvin


