I see three problems with this function:

1. [#36674] -undef results in -0.0 rather than the expected 0.
This is probably easy to fix, but I don't know if undef is the only value for 
which (!SvIOKp(sv) && !SvNOKp(sv) && !SvPOKp(sv)).

2. [#36675] Strings starting with '-' or '+' are treaded as strings, even when 
they represent numbers. Now I doubt this should be changed, but at least it 
should be clearly documented in perlop and probably perltrap. (imagine someone 
extracts numbers with a regular expression or split, and expects "-100" to be 
treated the same way as "100")

3. There is some special treating of UTF-8 strings: they can be prefixed with 
'-' even when they don't start with an "identifier first" character.
I was unable to provoke this behavior in practice, who knows how to do that?

Reply via email to