That was partial code. Here is the completed script. At least the
pertinent portion.

As you can see I am building a hash on the first pass. Then on the
second pass I am building a second hash but I am checking the first hash
to see if it had a count greater then two. I don't see any other way to
do this except two passes through the file. Correct me if I am wrong.

I am using a foreach loop because I just picked it. :) it situations
like this I never really saw a difference between while and foreach. Why
would I want to use a while loop instead?

#add duplicates to hash
foreach (<PEL>){
  chomp;
  @temp=split /,/,$_;
  $_=~s/ //g foreach (@temp);
  $dup{$temp[1]}++;
}

#add item->vendor part numbers to hash if don't exist in  dup hash
seek PEL, 0, 0;
foreach (<PEL>){
  chomp;
  @temp=split /,/,$_;
  $_=~s/ //g foreach (@temp);
  $vend{$temp[1]}=$temp[0] unless ($dup{$temp[1]} > 1);
}


> -----Original Message-----
> From: Jeff 'japhy' Pinyan [mailto:[EMAIL PROTECTED]] 
> Sent: Thursday, January 02, 2003 10:02 AM
> To: Paul Kraus
> Cc: Perl
> Subject: Re: Restarting at top of file
> 
> 
> On Jan 2, Paul Kraus said:
> 
> >I want to read through a file and the read through it again. However 
> >the only way it seems to work for me is if I open the file, Read the 
> >file,
> 
> WHY do you want to read the file twice?  Is there some way 
> you can do two things at once?
> 
> >foreach (<PEL>){
> >  chomp;
> >  @temp=split /,/,$_;
> >  $_=~s/ //g foreach (@temp);
> >  $dup{$temp[1]}++;
> >}
> >
> >foreach (<PEL>){
> >  chomp;
> >  @temp=split /,/,$_;
> >  print  "$_\n" foreach (@temp);
> >  $_=~s/ //g foreach (@temp);
> >  $vend{$temp[1]}=$temp[0];
> >}
> 
> Why are you using a foreach loop, rather than a while loop?  
> And you CAN do these two things at the same time.
> 
>   while (<PEL>) {
>     chomp;
>     s/ +//g;  # remove spaces
>     my ($value, $field) = split /,/;
>     $dup{$field}++;
>     $vend{$field} = $value;
>   }
> 
> -- 
> Jeff "japhy" Pinyan      [EMAIL PROTECTED]      
> http://www.pobox.com/~japhy/
> RPI Acacia brother #734   
> http://www.perlmonks.org/   http://www.cpan.org/
> <stu> what does y/// stand for?  <tenderpuss> why, 
> yansliterate of course. [  I'm looking for programming work.  
> If you like my work, let me know.  ]
> 


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to