Hi basalto,

Not sure if this will help you or not, but I think it might have to do with the use of $twig->setStartTagHandlers. I used Data::Dumper to look at what your SubNetwork routine was receiving as arguments. The first time, it received a XML::Twig for $twig, a string scalar for $tag, and a hash for %att. Then the sub goes about and changes the start tag handlers using setStartTagHandler or setStartTagHandlers, depending on which branch of the if statement is followed. The second time SubNetwork is called, it receives only a XML::Twig and a XML::Twig::Elt. The question you're asking is "why" and unfortunately I have no idea, but perhaps my post will help spark something for you.

Regards,

Bald Man Tom

Update: Sorry, I should have mentioned before that when I was playing around with your script, I commmented out the if statement in the SubNetwork sub so that the start tag handlers wouldn't be redefined, and the second time SubNetwork was called, it received the "expected" information.


In reply to Re: Strange start_tag_handlers behaviour using twig module by BaldManTom
in thread Strange start_tag_handlers behaviour using twig module by basalto

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.