in reply to Scripts work when run individually but not when run as one compiled script
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";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Scripts work when run individually but not when run as one compiled script
by john.tm (Scribe) on Jan 20, 2016 at 11:59 UTC | |
by shmem (Chancellor) on Jan 20, 2016 at 13:08 UTC | |
by poj (Abbot) on Jan 20, 2016 at 13:20 UTC |