I went looking after I posted, and there is
Tie::IntegerArray, but it's only a 0.1 version and works through
Bit::Vector, so I'm not sure how fast it is. I'm going to poke at it in a day or so, and if it's not reasonably snappy I will put a module together myself. (Might anyway, as something to do a Parrot benchmark against, but that's a separate issue... :)