> my $oBook;
> my $oWks;
> foreach $hashEntry ( @LOGS )
> {
> 
>          my ( $localfile)        = $hashEntry->{name};
>          my ( $err_msg )         = "";           # error message
> variable 
> 
> 
>          my $cmd                 = "";
> 
>          #
>          # Get row count of each file, to generate results file
>          #
>          $oBook = new
>          Spreadsheet::ParseExcel::Workbook->Parse($localfile); my
>          ($iR, $iC, $oWkS, $oWkC); $oWkS = ${$oBook->{Worksheet}}[0];
> 
>          print "------ SHEET: ".$oWkS->{Name}. "\n";
>          print "Row: ".$oWkS->{MinRow}." v ".$oWkS->{MaxRow}."\n";
>         
> $resultMessage.=basename($localfile).",".$oWkS->{MaxRow}."\n"; }
> 
> The problem I am running into is after 10 files (in testing all 31
> files are the same source file with different names), and then I get
> an out of memory error.  Anyone have any idea how I can clean out the
> memory.  I have a feeling it might be some autocaching or something
> not getting cleaned up within ParseExcel.

If you move the 'my $oBook' inside the for loop it the object should be
destroyed on each iteration:

for my $hashEntry ( @LOGS )
{

         my ( $localfile)        = $hashEntry->{name};
         my ( $err_msg )         = "";           # error message
variable 


         my $cmd                 = "";

         #
         # Get row count of each file, to generate results file
         #
         my $oBook = new
Spreadsheet::ParseExcel::Workbook->Parse($localfile);
         my ($iR, $iC, $oWkC);
         my $oWkS = ${$oBook->{Worksheet}}[0];

         print "------ SHEET: ".$oWkS->{Name}. "\n";
         print "Row: ".$oWkS->{MinRow}." v ".$oWkS->{MaxRow}."\n";
        
        $resultMessage.=basename($localfile).",".$oWkS->{MaxRow}."\n";
}

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to