Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re: A different kind of Spreadsheet::ParseExcel memory problem.

by InfiniteSilence (Curate)
on Sep 09, 2005 at 18:51 UTC ( #490706=note: print w/replies, xml ) Need Help??

in reply to A different kind of Spreadsheet::ParseExcel memory problem.

Expanding on philcrow's last paragraph I just encapsulated your code in routines:

#!/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:

C:\Temp>perl -e "require ''; print map{qq|$_\n|} ret_files('.') +;" > do.dat
Ran your script for each file independently:
perl -ne "BEGIN{require ''}; 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

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://490706]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2021-09-27 05:23 GMT
Find Nodes?
    Voting Booth?

    No recent polls found