sub Reinstate::TIEHASH { $_[1] } # Identity function
To tie %h to $o, just do
tie %h => 'Reinstate', $o;
The TIEHASH function is supposed to construct and return an object
Reinstate::TIEHASH does indeed return an object
It's not an object from class Reinstate, however
Instead, it's the object you wanted to receive future tied method calls
A disgusting violation of encapsulation boundaries blah blah blah