If you notice that any package provides an explicit destructor method ... call it what you will ... USE it. "There must be a reason." If it doesn't, still explicitly set references to "undef" instead of just letting them go out of scope. Is this advice necessary? I don't know.