in reply to How does the while works in case of Filehandle when reading a gigantic file in Perl
I believe this to be a duplicated question on stackoverflow, in which case I believe this to be the code inside the {do something..} found on stackoverflow...Hopefully having the actual code within your loop posted here may help you get an answer to your problem, hope this helps...
$line=0; %values; open my $fh1, '<', "file.xml" or die $!; while (<$fh1>) { $line++; if ($_=~ s/foo//gi) { chomp $_; $values{'id'} = $_; } elsif ($_=~ s/foo//gi) { chomp $_; $values{'type'} = $_; } elsif ($_=~ s/foo//gi) { chomp $_; $values{'pattern'} = $_; } if (keys(%values) == 3) { open FILE, ">>temp.txt" or die $!; print FILE "$values{'id'}\t$values{'type'}\t$values{'pattern'}\n"; close FILE; %values = (); } if($line == ($line1+1000000)) { $line1=$line; $read_time = time(); $processing_time = $read_time - $start_time - $processing_time; print "xml file parsed till line $line, time taken $processing_tim +e sec\n"; } }
|
|---|