Hi i have a below program to compare two file and log the result in new file. Its taking more than 10 min to log the data to AuditNew.txt file. br.1 file have around 3 lakh lines and MSMLogs.txt will have around 7,000 line.
Is there is any way to get the result logged faster in AuditNew.txt.
Note : Below print is displayed in console every 1 seconds for each line. it means the processing is faster but writing the data to text file is getting delayed.
print("\nnumber of occurance is $count\n");
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
#Open MSM Log in read Mode
open(my $MSMLog, '<','MSMLogs.txt');
#Create Audit txt file in write mode
open(my $Audit, '>','br.1');
print("Task Started.........\n");
#iterate each word to identify the logs
while (my $row = <$MSMLog>) {
chomp $row;
getCount($row);
}
sub getCount {
#Open MobileService.log file in read mode
open(my $MobileServiceLog, '<','one.txt');
my @StaticLog = @_;
my $count = 0;
#print ("\nvalue in MSM Static is ------ $StaticLog[0]\n");
while (my $row = <$MobileServiceLog>) {
my @actualWord = split /;/, $row;
my $MobileService = $actualWord[7];
#print ("value in MobileService is ------ $MobileService\n");
if ($MobileService =~ /$StaticLog[0]/) {
$count += 1;
}
}
$_=1
print ($Audit "\n$StaticLog[0] occurance is ------- \t$count\n");
print("\nnumber of occurance is $count\n");
close $MobileServiceLog;
}
print ($Audit "Task Completed");
print ("Task Completed");
close $MSMLog;
close $Audit;