use Excel::Template; my $template = Excel::Template->new( file => \*DATA, ); my @data; for ($j = 1; $j <= $#model; $j++) { push @data, { device_model => $model[$j], devices_per_model => $device_per_model, devices_per_variant => $devicesPerVariant[$j], model_variant_processor => $processor[$j], device_memory => $memory[$j], device_software => $softwareVersion[$j], }; } $template->param( data => \@data, ); $template->write_to_file( "somefile.xls" ); __DATA__ Equipment Model Devices Per Model Devices Per Variant Model Variant Processor Device Memory Device Software