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

Reply via email to