I'm attaching my actual module, minus the path (for your convenience), and a test script that demonstrates the error. It doesn't suffer from the original array slice problem. I've done this before (object states, that is), but they were fragile even then -- or they are now, anyway. I'm sure there's something simple or stupid I'm missing...
Rob
objtest2.pl
Description: Perl program
Controller.pm
Description: Perl program