It's potentially large, and though I could use XML::SAX events to build the whole thing in memory, I'd rather not. Furthermore, only some of the information in the file is of interest/needs altering - the rest needs to just be left alone, so streaming it though as a copy-file-like operation seems like a good idea, rather than using up memory.