Inspired by previous discussions on using arrays with inside-out objects (inside-out objects using arrays?), I modified Object::InsideOut to allow the use of arrays (as well as hashes) for storing object field data.

I tested the performance of array-based Object::InsideOut objects on several platforms, and was impressed with the results: I got anywhere from 20% (Solaris) to 40% (ActivePerl) performance improvement for basic fetch and store operations over blessed-hash objects!

I hope this may prove to be sufficient incentive for some of my fellow monks to give Object::InsideOut a try. This lastest version is available on CPAN. Enjoy.

In addition to speed improvements, using arrays consumes less memory because Perl doesn't have to store hash keys for the object field data.

The programming effort for using hash-based inside-out objects and array-based inside-out objects is the same: You just use '@' instead of '%' when declaring your object data fields.

Update 2:
I just uploaded v1.01.00 which adds support for object serialization.

See New Module Announcement: Object::InsideOut for more discussion on Object::InsideOut.

Remember: There's always one more bug.