That refcount (2147483647) looks strangely familiar.
Just print it out in hex and you'll see:
7FFFFFFF
which is a clear indication that this is the largest positive integer you can stuff into a signed 32 bit integer (2's complement).
So yeah, your guess is very likely correct.
| [reply] |
So I looked at the code to answer your question. It looks like it's a hack, not a magical value. The refcount can go down, but it gets reset back to the max for SvIMMORTAL variables (the true, the false, the undef and a special internal thing called "placeholder").
| [reply] |
So I looked at the code to answer your question.
Thanks! I searched the code myself today with no luck. I postoponed it for the weekend but now you have resolved this, I'll just have to stick to something else to do :)
| [reply] |
My answer is more or less an educated guess. If you want to look around to confirm or for fun, PL_sv_no is the SV returned when a builtin wants to return something false. An interesting puzzle would be to see if you can manage to lower the refcount and display it at the lower refcount using Devel::Peek's Dump.
| [reply] [d/l] |
I guess it's a hack, but I'm too lazy to check the source :-)
| [reply] |