I'm at a complete loss to understand why you think this is going to be difficult or problematic. First of all, Win32::OLE would not be used for the csv parsing, it would be used to update the xls file. There are several modules on cpan that assist in parsing the csv file, but it's very common to simply open a filehandle to it and process it line-by-line and update the xls file as needed while you're parsing the csv file.