I've come to like XML::Rules. I also still like XML::Twig. But when I just needed to alter some attribute values in some not-especially-large (<200KB) files, I tried both of those modules, but ended up going with XML::LibXML because XPath made finding the desired attributes that I wanted to change incredibly simple (Update: And I didn't know about XML::Twig::XPath...though it's still worthwhile learning XML::LibXML).