It's actually a pseudohash bug, fixed in 5.7.2 (5.8 to be).
Remember how pseudohashes work - they're actually arrays where the first entry is supposed to be a hash indicating the position of the fields. What's happening here is that perl is trying to create an enormous array. I can't recall the exact semantics of it, but it's something to do with extending the array to the size given by the length given by the memory location of "0", or something like that. Maybe someone can find the p5p discussion on this, so I don't have to look for it ;-)