http://qs321.pair.com?node_id=437792


in reply to Re: Safely altering the behaviour of heavily used modules
in thread Safely altering the behaviour of heavily used modules

Well, by "race easily" I mean for example that some uses of STORABLE_thaw are something like...
sub STORABLE_thaw { my ($self, $string, @refs) = @_; ... %$self = %rebuilt_contents; }
Now, if called in scalar context, that should return the number of elements in the listified hash, which won't be a problem. But it's only safe accidentally, not by design. The original author was told that anything that might be returned would be ignored.

But there is the potential for one of these cases where the function doesn't have an explicit "return;" to accidentally return a different object of the same class, which the new behaviour would interpret as an alternate object and treat incorrectly.