http://qs321.pair.com?node_id=484261


in reply to Re: Problem in parsing XML file using XMl::Twig
in thread Problem in parsing XML file using XMl::Twig

Actually it looks like $$titlename will dereference the scalar instead:
perl -wle 'use strict; my $bar = 3; my $foo = \$bar; print "$$foo"' # outputs: 3
But OP probably doesn't want to use $titlename as a scalar ref .. so the line qq[Title[\@Name="$$titlename"]] => should probably be:
qq[Title[\@Name="$$titlename"]] =>

to OP: use strict; and use warnings; would have caught this saying something like Can't use string ("MyTitleString") as a SCALAR ref while "strict refs" in use at foo.pl line 1234.

Replies are listed 'Best First'.
Re^3: Problem in parsing XML file using XMl::Twig
by ramya2005 (Scribe) on Aug 16, 2005 at 22:28 UTC
    I am sorry! That was a typo created when I copied the code and pasted it in Perl Monks editor. It is one $. And still the problem exists...
    But I realized that I am doing 'new' in a loop and that's why I am loosing the data.
    Can someone suggest me how to correct it?
    Is there a way to create new Xml::Twig and set the handler later?
    Thanks!
      Is there a way to create new Xml::Twig and set the handler later?
      Looking at the POD (i haven't actually tried it) for XML::Twig it looks like you can use the setTwigHandlers ($handlers) method (note there are several set*Handler*() methods).
        I went through the XML::Twig help page and figured out the use of setTwigHandlers().
        But my problem still exists! The changes that I made to $filter_tree is not preserved, only the last change is seen outside the loop.
        Any help in fixing this will be much appreciated!