If you are getting serious about things I think you should look at XML::LibXML
. I believe it is built off a C library so it is a little faster if nothing else. There was another thread you may find useful: Question on XML::LibXML...
. DTD's are the old (and still very prevalent way) of validating XML (the newer one being schemas). I don't see why should need to use either from what you have described. You may want to look in CPAN for the ATOM specific stuff. However when I tried (more for RSS than ATOM) that I ended up falling back onto XML::LibXML. Another approach might be to try converting to a perl structure that you feel familiar with via, say, XML::XML2JSON