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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |