in reply to Re^3: hash to differentiate type and tokens
in thread hash to differentiate type and tokens
#! /usr/bin/perl use strict; use warnings; my $str1='It is a guide to action which ensures that the military alw +ays obey the commands of the party.'; chomp($str1); my $str2='It is a guide to action that ensures that the military will +forever heed Party commands is a guide.'; chomp($str2); my @arr1=split(/\s+/, $str1); my $n_occur_in_str1=0; my $n_occur_in_str2=0; print "-"x60,"\n"; print "nth Match\tNo of occurence\t\tMatched Pattern\n"; print "-"x60,"\n"; for(my $i=0; $i<$#arr1;$i++) { my $t1="$arr1[$i] $arr1[$i+1] $arr1[$i+2]"; my @pattern_word_count=split(/\s/, $t1); my $space_count=@pattern_word_count; if($space_count == 3) { if($str2=~/$t1/) { my $occurence=`echo $str2 | grep -o '$t1' |wc - +l`; chomp($occurence); print $i+1,"\t\t",$occurence,"\t\t\t$t1\n"; $n_occur_in_str2+=$occurence; $n_occur_in_str1++; } } } print "\n\nTotal no of occurence in str1 : $n_occur_in_str1\n"; print "\n\nTotal no of occurence in str2 : $n_occur_in_str2\n";
in the above code i used an array to store the splitted words from sentence and then use each words for further processing
Here, the problem is when i have repeated words, unwantedly i do computation for same words. so to avoid tat i have been advised to store the words in a hash rather than an array.
But, i m not clear how i can do that
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: hash to differentiate type and tokens
by Anonymous Monk on Jul 13, 2011 at 12:10 UTC | |
by sarvan (Sexton) on Jul 14, 2011 at 03:52 UTC |