I seem to be encountering some kind of overflow bug with vec. To wit:
memtime perl -e '$h = ""; $x = (2**31)-2; vec($h,$x,8) = 0;'
Exit [0]
0.94 user, 1.34 system, 2.30 elapsed -- Max VSize = 2115872KB, Max RSS
+ = 2042140KB
Runs as expected, but:
memtime perl -e '$h = ""; $x = (2**31)-1; vec($h,$x,8) = 0;'
Out of memory!
Exit [1]
0.00 user, 0.00 system, 0.10 elapsed -- Max VSize = 3720KB, Max RSS =
+192KB
Seems to ask for too much memory, and
memtime perl -e '$h = ""; $x = (2**31); vec($h,$x,8) = 0;'
Negative offset to vec in lvalue context at -e line 1.
Exit [255]
0.00 user, 0.00 system, 0.10 elapsed -- Max VSize = 3720KB, Max RSS =
+128KB
has another problem altogether.
Is this a problem with vec? My Perl build? My syntax? Any workarounds?