Perl | Count the frequency of words in text
Last Updated :
12 Feb, 2019
Improve
Counting frequency of all words of a string is a basic operation for any programming language. The frequency of each word of the text can be counted and stored in a hash for further use. In Perl, we can do this by firstly splitting the words of the string into an array. We use the function split / / which splits the string with ' '. However the blank spaces can be more than one in between two words, therefore /\s+/ is used. Here \s+ denotes one or more occurrence of ' '. Now we traverse the new array created by splitting of text into words. This time we increment the count of the word while traversing the array.
- Example: To demonstrate Count the frequency of words in string
Perl # Perl program for counting words in a string $actual_text = "GFG GeeksforGeeks GFG" ; # Creating words array by splitting the string @words= split / /, $actual_text; # Traversing the words array and # increasing count of each word by 1 foreach $word(@words) { $count{$word}++; } # Printing the word and its actual count foreach $word (sort keys %count) { print $word, " ", $count{$word}, "\n"; }
GFG 2 GeeksforGeeks 1
- Example: To demonstrate the difference between /\s+/ and / /
Perl # Perl program for counting words in a string using / / # A text with two spaces rather than one $actual_text = "GeeksforGeeks welcomes you to GeeksforGeeks portal" ; # splitting the word with / / @words= split / /, $actual_text; # Counting the occurrence of each word foreach $word (@words) { $count{$word}++; } foreach $word (sort keys %count) { print $word, " ", $count{$word}, "\n"; }
1 GeeksforGeeks 2 portal 1 to 1 welcomes 1 you 1
Note: The extra ' ' is also counted as a word.
- Example:
Perl #Perl program for counting words in a string using /\s+/ # Actual string with two spaces $actual_text = "GeeksforGeeks welcomes you to GeeksforGeeks portal" ; #S plitting the text using /\s+/ command @words = split /\s+/, $actual_text; # counting the occurrence of each word foreach $word (@words) { $count{$word}++; } foreach $word (sort keys %count) { print $word, " ", $count{$word}, "\n"; }
GeeksforGeeks 2 portal 1 to 1 welcomes 1 you 1
Note: The extra ' ' is not counted as a word.