in reply to Parse XML with Perl regex

I somehow missed this point when I made my first reply -- you said:

(I know about the XML::Parse and ::Twig modules, but using regex is a requirement)

Who/what makes this a requirement? Why are you required to do inferior work and to stifle your own experience in solving problems using best practices?

If it's because this is a homework assignment from teacher using bad methods to make you learn regexes, shame on you for not saying so. (I might still have posted the code I did, even knowing it was homework, since you did show some effort on your own. Honesty always pays in any case.)

If it's because the machine you're using doesn't have the required modules, there are ways around that -- like, installing the modules you need, inside your own home directory if necessary.

If it's because of some PHB forbids using the correct tools for the job, I offer my sympathy, and suggest you keep an eye open for other places to work.

Replies are listed 'Best First'.
Re^2: Parse XML with Perl regex
by ad23 (Acolyte) on Jul 08, 2010 at 13:53 UTC

    Thanks graff. Appreciate your help with the code.

    I am new to Perl and programming as a whole. Parsing XML with the modules available, is the obvious answer to my question. And I also did the same (just using XML::Simple) before using a regex approach.

    Regex may be the most outdated way to do this task, but for some beginners - Perl regex can be a nightmare (at least for me). So practicing more problems using regex, might help me to use these modules even better.

    About the "requirement" --- ITS NOT. Whenever I searched for something to parse XML in Perl, I always ended up with these modules and tutorials for the same. It might sound cliche, but that's what it is. There is no "homework assignment" and no one is "forcing" me to something.

    #!/usr/bin/perl use XML::Simple; use Data::Dumper; $xml = new XML::Simple(KeyAttr=>[]); $data = $xml -> XMLin("INFO.xml"); #print Dumper($data); #print "XML read in\n"; foreach $e(@{$data->{t_volume}}) { print $e->{info_name},"\n"; print "It Size: ", $e->{it_size}, "\n"; print "\n"; }

    Thanks again for your help!!