Turned out I made a mistake about the overload implementation. Sorry. Overloading '@{}'/'%{}' does work; I was using @{$_[0]} inside the '@{}'overloading code and messed it up. <http://www.autrijus.org/ArrayHashMonster-0.03.tar.gz> shows that for the particular case of ArrayHashMonster, the two tied objects don't even have to belong to different packages -- their FETCH routines are exactly identical. it's also about 25% faster than the (untuned) phash implementation: 4.762u 0.000s 0:05.27 90.3% # AHM2 (phash) 3.576u 0.046s 0:03.90 92.5% # AHM3 (overload) I also misunderstood mjd's idea about the proposed patch to core; it's more along the line of allowing a scalar that holds a GLOB reference to behave exactly like *{"sym"} does, so you can assign it hashref and arrayref and have it act like a natural ArrayHashScalarFunctionMonster, which I think is a very elegant solution. Thanks, /Autrijus/Thread Previous | Thread Next