in reply to dependable way to test for a float

You can test with a regexp, which you can roll your own with something like (this is a fairly simple example):
if ( $var =~ /^-?\d+(\.\d+)?$/ ){ # you have a float }
But I'd recommend checking out Regexp::Common::number which will cover many more cases.