# open file in read/write mode open(my $xlshandle, '+<', $xlsfile) or die "Can't open '$xlsfile' for read/write: $!\n"; binmode($xlshandle); # insert code to read spreadsheet # reset handle to beginning of file seek($xlshandle, 0, 0); my $newxls = Spreadsheet::WriteExcelXML->new($xlshandle); # handle, NOT file # insert code to put updated data into $newxls $newxls->close(); close($xlshandle); #### my $newxlsfile = $xlsfile . '.new'; my $newxls = Spreadsheet::WriteExcelXML->new($newxlsfile); # file, NOT handle # insert code to put updated data into $newxls $newxls->close(); close($xlshandle); rename($xlsfile, $xlsfile . '.bak'); rename($newxlsfile, $xlsfile);