Hi all, a while ago I wrote a little unit conversion I am quite happy with. Just out of interest: is there a more elegant way to do it? And maybe even more interesting: what approach should I take to implement the back conversion?
Here is my code: #! /usr/gnu/bin/perl -w ################################################## # unit conversion # here I loose the SI-Unit like Volt Ampere etc. but I don't need it. # sub expand_unit($){ my $unit = shift (@_); my $last = ""; return $unit if (not ($unit =~ /\d/)); while ( substr($unit,length($unit)-1,1) =~ /\D/ ){ $last = substr($unit,length($unit)-1,1); substr($unit,length($unit)-1,1) = ""; #truncate } SWITCH: { if ($last =~ /G/){ $unit *= 1E9; last SWITCH; } if ($last =~ /M/){ $unit *= 1E6; last SWITCH; } if ($last =~ /[kK]/){ $unit *= 1E3; last SWITCH; } if ($last =~ /m/){ $unit *= 1E-3; last SWITCH; } if ($last =~ /u/){ $unit *= 1E-6; last SWITCH; } if ($last =~ /n/){ $unit *= 1E-9; last SWITCH; } if ($last =~ /p/){ $unit *= 1E-12; last SWITCH; } } return $unit; } ############################## # some example $value = "852.52mv"; $new_value = expand_unit($value); #do some calculus with this new_value like: new_value1 - new_value2 .... print "$value = $new_value\n"; ___ Stefan -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]