in reply to A different kind of Spreadsheet::ParseExcel memory problem.
#!/usr/bin/perl -w use strict; use Win32::OLE; #or ParseExcel or whatever my $DEBUG = 1; # # Subroutines # sub get_cell_val() { my ($src_sheet, $src_row, $src_col) = @_; if (defined $src_sheet->{Cells}[$src_row][$src_col]) { $_ = $src_sheet->{Cells}[$src_row][$src_col]->Value; } else { $_ = ''; } } # # Main Program # sub ret_files { my ($path)=@_; chdir($path) or die "Cannot change path: $!"; return(glob('*.xls')); } sub main { #... the rest of your code }# end of main 1;
Got your files into a list:
Ran your script for each file independently:C:\Temp>perl -e "require 'crow.pl'; print map{qq|$_\n|} ret_files('.') +;" > do.dat
perl -ne "BEGIN{require 'crow.pl'}; main($_)" do.dat
If you really want to make things simple you can copy the above command line instructions into a batch file (.bat) and re-run it whenever you want. Update: Oh yeah, you will want to flush your output so that you can see those debug statements early on if you are going to use this for hundreds of files.
Celebrate Intellectual Diversity
|
|---|