Recipe 5.15 Finding the Most Common Anything

5.15.1 Problem

You have an aggregate data structure, such as an array or a hash. You want to know how often each element in the array (or value in the hash) occurs. For instance, if your array contains web server transactions, you might want to find the most commonly requested file. If your hash maps usernames to number of logins, you want to find the most common number of logins.

5.15.2 Solution

Use a hash to count how many times each element, key, or value appears:

%count = ( );
foreach $element (@ARRAY) {

5.15.3 Discussion

Any time you want to count how often different things appear, you should probably be using a hash. The foreach adds one to $count{$element} for every occurrence of $element.

5.15.4 See Also

Recipe 4.7 and Recipe 4.8