in reply to classifying data

This got really complex, I can understand your confusion. Does this work for you? I've tested it as thoroughly as I can think to in a few minutes:
#!perl use strict; my @data = qw/ +20 400.00 $5,000.00 -$860.7 $-26.01 90,000,000 blah te +st 45$99.0 $5+8.2 $,000 /; for (@data) { if (/^(\$|-|\+|\$-|\$\+|-\$|\+\$|\d)/) { if (/^\d((,\d{3})|(\d*)|(\.\d{1,2}))+$/) { print "$_ is a numeric!\n"; } elsif (/^(\$|-|\+|\$-|\$\+|-\$|\+\$)\d{1,3}((,\d{3})|(\d*)|( +\.\d{1,2}))+$/) { print "$_ is a dollar amount!\n"; } else { print "$_ is non-numeric!\n"; } } }