You'll need to use a SAX parser (
XML::SAX) or a SAX-like stream parser (
XML::Parser) to keep from loading the whole file into memory when you parse. Also, you'll need to think carefully about what you do with the data as you parse it; it's no good using a stream parser if you just build a giant hash using it! I had success parsing 500MB of XML into a MySQL database with XML::Parser, but these days I would probably go to the shiny new SAX route.
-sam