in reply to Reduce the time taken for Huge Log files
Can you please help me in optimizing the code given below.
Sure, but clean up your code first then re-post it. As is, it is almost unreadable.
Global symbol "$sec" requires explicit package name at - line 100. Global symbol "$min" requires explicit package name at - line 100. Global symbol "$hour" requires explicit package name at - line 100. Global symbol "$mday" requires explicit package name at - line 100. Global symbol "$mon" requires explicit package name at - line 100. Global symbol "$year" requires explicit package name at - line 100. Global symbol "$wday" requires explicit package name at - line 100. Global symbol "$yday" requires explicit package name at - line 100. Global symbol "$isdst" requires explicit package name at - line 100. Global symbol "$year" requires explicit package name at - line 101. Global symbol "$mon" requires explicit package name at - line 102. Global symbol "$d" requires explicit package name at - line 103. Global symbol "$mday" requires explicit package name at - line 103. Global symbol "$d" requires explicit package name at - line 104. Global symbol "$d" requires explicit package name at - line 105. Global symbol "$d" requires explicit package name at - line 105. Global symbol "$m" requires explicit package name at - line 107. Global symbol "$mon" requires explicit package name at - line 107. Global symbol "$m" requires explicit package name at - line 108. Global symbol "$m" requires explicit package name at - line 109. Global symbol "$m" requires explicit package name at - line 109. Global symbol "$year" requires explicit package name at - line 111. Global symbol "$m" requires explicit package name at - line 111. Global symbol "$d" requires explicit package name at - line 111. Global symbol "$sec" requires explicit package name at - line 114. Global symbol "$min" requires explicit package name at - line 114. Global symbol "$hour" requires explicit package name at - line 114. Global symbol "$mday" requires explicit package name at - line 114. Global symbol "$mon" requires explicit package name at - line 114. Global symbol "$year" requires explicit package name at - line 114. Global symbol "$wday" requires explicit package name at - line 114. Global symbol "$yday" requires explicit package name at - line 114. Global symbol "$isdst" requires explicit package name at - line 114. Global symbol "$year" requires explicit package name at - line 115. Global symbol "$mon" requires explicit package name at - line 116. Global symbol "$d" requires explicit package name at - line 117. Global symbol "$mday" requires explicit package name at - line 117. Global symbol "$d" requires explicit package name at - line 118. Global symbol "$d" requires explicit package name at - line 119. Global symbol "$d" requires explicit package name at - line 119. Global symbol "$m" requires explicit package name at - line 121. Global symbol "$mon" requires explicit package name at - line 121. Global symbol "$m" requires explicit package name at - line 122. Global symbol "$m" requires explicit package name at - line 123. Global symbol "$m" requires explicit package name at - line 123. Global symbol "$year" requires explicit package name at - line 125. Global symbol "$m" requires explicit package name at - line 125. Global symbol "$d" requires explicit package name at - line 125. Global symbol "$outfile" requires explicit package name at - line 127. Global symbol "$outfile" requires explicit package name at - line 129. Global symbol "$outfile" requires explicit package name at - line 129. Global symbol "$filename" requires explicit package name at - line 131 +. Global symbol "$index" requires explicit package name at - line 133. Global symbol "$filename" requires explicit package name at - line 133 +. Global symbol "$index" requires explicit package name at - line 134. Global symbol "$filename" requires explicit package name at - line 137 +. Global symbol "$filename" requires explicit package name at - line 138 +. Global symbol "$sourcefile" requires explicit package name at - line 1 +38. Global symbol "$filename" requires explicit package name at - line 144 +. Global symbol "$ct" requires explicit package name at - line 151. Global symbol "$ct" requires explicit package name at - line 152. Global symbol "$ct" requires explicit package name at - line 153. Global symbol "$ct" requires explicit package name at - line 154. Global symbol "$ct" requires explicit package name at - line 156. Global symbol "$sourcefile" requires explicit package name at - line 1 +58. Global symbol "$ct" requires explicit package name at - line 170. Global symbol "$ct" requires explicit package name at - line 171. Global symbol "$ct" requires explicit package name at - line 171. Execution of - aborted due to compilation errors.
That will save everybody here from having to track down that the reason for this:
Global symbol "$sourcefile" requires explicit package name at - line 1 +58.
Is because of lines like this:
open(OLD,"/inside29/urchin/test/logfiles/$filename") || die ("Cud not +open the $sourcefile");
and this
open(OLD,"consolidatedlog.txt") || die ("C not open the $sourcefile");
It is quite handy if your error messages refer to the same files as those that cause the errors!
And sorry for mentioning this, but what is all this?
my $yesterday = time() - ( 24 * 60 * 60 ); ## Why use 'my' here ###### +########### ## And not here -v-v-v-v-v-v-v-v- ##################### ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($yes +terday); $year += 1900; $mon++; $d = "$mday"; ## <<< Why copy $mday to $d? And why quote "$mday"? ### +###################### if ($d <10) { $d = "0$d"; ## <<< What does this do? ################# } $m ="$mon"; if ($m<10) { $m = "0$m"; ## <<< And this? #################### } $yesterday = "$year" . "$m" . "$d"; ## Why all those "s? #######
Please don't take this to heart, but asking us to optimise your code, when it is so ... um ... messy, is rather pushing your luck a little.
|
|---|