First, I wouldn't use symbolic references like that. Use a hash. That is, instead of push @{$host} use push @{$names{$host}} where you declare my %names earlier. So please add use strict to you code so these things will be caught.
Then you could replace the push line with something that doesn't resort to an array until needed:
or you could just cram all of the names into one long string: $users{$hash} .= $name.$;; or perhaps just removing the namespace pollution is enough of an improvement for you?if( ! $names{$hash} ) { $names{$hash}= $name; } elsif( ! ref( $users{$hash} ) ) { $users{$hash}= [ $users{$hash}, $name ]; } else { push @{ $users{$hash} }, $name; }
After thinking of several other alternates, I'd probably go with "ease of programming" and use what I outlined in the first paragraph and not sweat the tons of anonymous, 1-element arrays.
- tye (but my friends call me "Tye")In reply to (tye)Re: Sorting a list by frequency of items
by tye
in thread Sorting a list by frequency of items
by yojimbo
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |