$worksheet->write($row, $col++, $_, $format) for @data; #### for (@data) { if ($_ =~ m/^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/){ print; $worksheet->write_number($row, $col++, $_, $format); }else{ $worksheet->write($row, $col++, $_, $format) } }