in reply to When does hv_store() fail?

Luke, use the source. Looking in hv.c I see the following possible causes for a NULL return:

Notice that only a bad HV * arg will cause a 0 return and running out of memory won't - the program will just croak() with an Out of Memory error.

-sam