On Friday 16 June 2006 09:02, you wrote: > On 6/16/06, Alan_C <[EMAIL PROTECTED]> wrote: > [snip] > > > 1 'build' slack build slackbuild sbuild pkg > > > > 2 'build' slack build slackbuild sbuild pkg > > > > 3 'build' slack build slackbuild sbuild pkg > > > > 4 'kernel' slackware 2.6 kernel howto > > > > 5 'kernel' kernel compile install 2.6 > > > > 6 'build' building a linux kernel from source > > > > 7 'kernel' building a linux kernel from source > > [snip] > > > for my $keyline ( @lines ) { > > my $filename = shift @$keyline; > > for my $search ( @search4 ) { > > for ( @$keyline ) { > > if ( /$search/ ) { > > # How to not have duplicated keyword lines? > > # the next line I don't understand. How to get it hash like? > > push @{ $data{ $filename } }, $_; # I think this line > > cause # print ++$found_tally . " " . $search,@$keyline, > > "\n"; # prints keyline 4 ea found > > print ++$found_tally," '$search' @$keyline\n\n"; > > last; > > > } > > } > > } > > } > [ . . ]
[EMAIL PROTECTED]:~$ grepf7tst build kernel [ snip ] 1 'build' slack build slackbuild sbuild pkg 2 'kernel' slackware 2.6 kernel howto 3 'kernel' kernel compile install 2.6 4 'build' building a linux kernel from source 4 'kernel' building a linux kernel from source That's acceptable (4 files, 4 digits) I changed $found_tally to $file_tally since this is what I use to represent (as a digit) which file I will then choose to be printed. I added $i to track when the same keyline is visited more than once. Upon succesive visits to the same keyline, $file_tally does not get incremented. IOW there is only to be just one increment of $file_tally for each keyline. It works. I suspect there likely is a more elegant way in which to achieve this. But then again I also have yet more learning curve to go through too. Thanks!! my $file_tally = 0; my $i; my %data; for my $keyline ( @lines ) { my $filename = shift @$keyline; $i = 0; # now its a fresh keyline for my $search ( @search4 ) { for ( @$keyline ) { if ( /$search/ ) { push @{ $data{ $filename } }, $_; ++$i; # tracks multiple visits to one keyline # print ++$file_tally . " " . $search,@$keyline, "\n"; # dont inc file_tally upon any successive visit to the same keyline $file_tally-- if $i > 1; print ++$file_tally," '$search' @$keyline\n"; last; } } } } # end of code snippet -- Alan. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>