in reply to Re: finding duplicate data
in thread finding duplicate data

That works great !.
What is the second part of the code doing ?
i.e. how is it working ?

Replies are listed 'Best First'.
Re: Re: Re: finding duplicate data
by ysth (Canon) on Jan 21, 2004 at 11:40 UTC
    Which part has you puzzled? grep? for () implicitly setting $_? (If the former, you should be able to run "perldoc -f grep" to get a description of what grep does. If for some reason you have a broken perl that doesn't include perldoc, try here.)
      What if I have an array called (@hydrogen_split).
      Could I not write your code like this ?

      foreach $i(0..@hydrogen_split){ chomp; $hydrogen_split{$key}++; } for ( sort grep { $hydrogen_split{$key} !=1 } keys %hydrogen_split){ print "$key\n"; }
        I didn't post any code. I think the code to which you refer was by borisz. Anyway, you have it a little wrong:
        # loop over the array values, not indexes, making $key # refer to each one in turn foreach my $key (@hydrogen_split) { # chomp is probably not needed if your data is already # in an array. chomp removes the end-of-line character # from a line of input # use the %hydrogen_split hash to keep track of which # keys were seen how many times $hydrogen_split{$key}++ } # print in sorted order each key that was encountered more than once foreach my $key ( sort grep { $hydrogen_split{$key} > 1 } keys %hydrog +en_split ) { print "$key\n"; }
        Note that I changed his != 1 to > 1. Do you understand why?