> Why bother with un defining a sub when you can just delete it?

Two very, very different things.

The delete removes the typeglob from the stash. This doesn't necessarily destroy the typeglob if it's still referenced elsewhere (like in another stash, compare refcount and garbage collection).

Anyway, the sub's ref is in the CODE slot of the typeglob!

Same story, destroying the typeglob doesn't mean destroying the sub, if it's referenced elsewhere.

(Think of a typeglob like of a hash with only 6 slots, CODE is one of them)

I could do a lot of experiments now to determine the internal mechanisms, question is rather if we are even allowed to rely on them. And others here know the C code better.

Fact is that we already have clean interfaces for subs

Those mechanisms are guaranteed to work.

Please keep in mind that typeglobs are a Perl4 mechanism, refs came with Perl5. Not sure to which degree refcounts and garbage collection are applied to typeglobs and/or their slots.

Cheers Rolf
(addicted to the Perl Programming Language :)
see Wikisyntax for the Monastery


In reply to Re^5: Refresh a Module by LanX
in thread Refresh a Module by Timka

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.