As always, you do this by using Win32::OLE to automate Excel.
The steps are the usual six steps:
- Start the Excel Macro Recorder
- Perform the desired action(s) manually, in your case, save the file as XML
- Stop the Excel Macro Recorder
- Inspect the generated VB code
- Check that the generated VB code does what you want
- Translate the generated VB code to Perl / Win32::OLE invocations
There are many examples on this website which should give you a good start on how to do the translation. It consists mostly of s!\.!->! applied to every line of the code, and you will have to exchange the global properties like "ActiveWorkSheet" by the local values you get from $excel->OpenFile().