in reply to
Out of memory and While replacements with excel XLSX application
The "out of memory" issue is probably caused by Excel::Writer::XLSX. Especially if you have 1 million rows.
You can reduce its memory usage (almost completely*) by setting the workbook set_optimization() method.
my $workbook = Excel::Writer::XLSX->new( file.xlsx' );
my $worksheet = $workbook->add_worksheet();
* See the Speed and Memory Usage section of the Excel::Writer::XLSX docs for a full explanation.