Close the files you created before reading them
close $clss_out{$_} for keys %clss_out; csv_xlsx();
Also, consider deleting the csv file individually rather that using glob
sub csv_xlsx{ my $dir = "C:\\Temp\\Data"; my @csv_files = glob "$dir/*.csv"; foreach my $csv (@csv_files) { (my $xlsx = $csv) =~ s/csv/xlsx/i; print "Creating $xlsx "; my $workbook = Excel::Writer::XLSX->new($xlsx); my $worksheet = $workbook->add_worksheet(); my $row = 0; open my $fh, '<', $csv or die "Can't open '$csv' : $!"; while (<$fh>) { my @list = split /,/; $worksheet->write_row( $row, 0, \@list ); ++$row; } print "$row rows written\n"; $workbook->close(); close $fh or die "Can't close '$csv' ; $!"; unlink $csv or warn $! ; } }
Update : Why are you using this ?
my $xlsx_WSD = ( "C:\\Temp\\Data\\data.xlsx"),, 1;instead of simply
my $xlsx_WSD = "C:\\Temp\\Data\\data.xlsx";In reply to Re: Scripts work when run individually but not when run as one compiled script
by poj
in thread Scripts work when run individually but not when run as one compiled script
by john.tm
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |