in reply to Re^7: Weird behavior of int()
in thread Weird behavior of int()

When I use "int()" in perl, what I actually wanted was C's cast-to-int or JavaScript's parseInt()

I don't know of any perl function that will do that.
I'd do it as an XSub:
SV * _to_IV(SV * in) { if(SvNV(in) < 0) return newSViv(SvIV(in)); return newSVuv(SvUV(in)); }
However, in your case, assuming that $limit > ~0 >> 1, you could just do it as:
IV _to_IV(SV * in) { return SvIV(in); }
which (if I'm thinking correctly) would still reject arguments greater than ~0 >> 1 because $count is negative.

Of course, you might prefer to just check that the arg is not a NaN, if you trust the NaN != NaN test or POSIX::isnan or somesuch.

Cheers,
Rob