In my Inline::C based CAD::Drawing::IO::DWGI.pm, I've been using the following 
check under perl 5.6.1 without any problems:

        if(! SvNOK(val))
                croak("not a double");
        dwg->aden->arc.radius = SvNV(val);

Then, after upgrading to 5.8.3, that caused problems with the number 1, so I 
changed it to this:

        if(! (SvNOK(val) || SvIOK(val)))
                croak("not a number");
        dwg->aden->arc.radius = SvNV(val);

Now, that fails if the number came from a string.  So, what now?  If I just 
get rid of the check altogether, the magic works as expected.  Is this "the 
right way" (TM)

Seems kind of silly that the best way is not to check, but I guess if the 
perlguts are as magical as the front-end, that's fine with me.

--Eric

Reply via email to