#!/usr/bin/perl -w use strict; my @tests = ('50 ma', '10ma', '2.3', '-.2 ma', '3.', '4.0', '10ba'); foreach my $input (@tests) { my ($amps, $flag_ma)= $input=~ /^\s*([-+]?\d*\.?\d+)\s*(ma|mA)?\s*$/; $amps /=1000 if defined $flag_ma; if (defined $amps) { print "$amps amps\n"; } else { print "$input is an illegal entry\n"; } } __END__ 0.05 amps 0.01 amps 2.3 amps -0.0002 amps 3. is an illegal entry 4.0 amps 10ba is an illegal entry