> 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>