Today I am finally going to need to use XML to do my job. This is a historic first. I've looked at XML off and on for I don't know how many years now, and never once actually used it for work. (Though I did have an aborted attempt to use XML as config files a few years back.)
I'm familiar with most of the basic issues in XML use, but I couldn't quite remember all the details about which module did what (in what way). So I googled for Perl XML and found this handy FAQ. Thank you, to whoever provided this; it was just what I needed!
Haven't read the whole thing, yet, but so far it hasn't mentioned XML::TreeBuilder, which was the module that worked most like the way I think, way back when I first started looking at XML. I remember also designing a simpler module that worked about the same way, as an exercise in writing automated tests.
I don't get it. Last time I checked, expat was included in the XML::Parser distribution. Now I have to go fetch it myself? Why the regression? (I swear I remember being delighted when someone finally decided to include it; am I thinking of another module?)
A common problem people encountered with Expat was that Apache included it by default. So if you tried to load XML::Parser under mod_perl Apache would segfault with a symbol clash. So the right solution is for the system to include a shared libexpat used by everyone that wants it.
Most Linux distributions provide Expat as a package and ActivePerl provides Expat in the distribution (PPM needs it). When I was using Solaris an HPUX, I found that binary packages were not hard to come by.
PS: re the thanks for the FAQ - you're welcome.