On 8/7/07, Chas Owens <[EMAIL PROTECTED]> wrote: > > On 8/7/07, Mihir Kamdar <[EMAIL PROTECTED]> wrote: > snip > > open (my $OUT_FILE,"+>","$write_path/$file.out") or die > $!; > > > > while (my($key, $value) = each %hash) > > { > > print $OUT_FILE $value; > > } > > my $lines = 0 ; > > $lines++ while<$OUT_FILE> ; > > > > print $LOG_FILE "Count of cdrs after removing > duplicates = $lines" ; > snip > > At last I am trying to get the count of lines of my OUT_FILE. It is > giving me > > the result as 0, which is not true. > > Where am i doing a mistake? > snip > > After you are finished writing to the file the file pointer is at the > end of the file. Any reads will immediately return EOF. So, you need > to seek to the beginning of the file (seek $OUT_FILE, 0, 0;), but why > not just increment $lines as you write them? Or, better yet, use keys > like this > > print $LOG_FILE "Count of cdrs after removing duplicates = " . (keys > %hash) . "\n"; >
I am doing the following: while (my($key, $value) = each %hash) { print $OUT_FILE $value; } seek $OUT_FILE,0,0 ; my $lines = 0 ; $lines++ while<$OUT_FILE> ; print $LOG_FILE "Count of cdrs after removing duplicates = $lines" ; close $OUT_FILE; close $LOG_FILE ; still output is 0....