Unless I misunderstood the original question, this doesn't answer it. I read it to mean that if you had two scalars like this:
my $number = 1; my $string = "1";
how would you tell which is a string and which is a number. I don't think your solution addresses this.
Oh, and your regex to check for floating point numbers could use some work too :)--
Perl Training in the UK <http://www.iterative-software.com>