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.