use strict; use warnings; my @items = ( 1, 3, 3, 3, 5, 5, 5, 5 ); my @frequency = @{ frequency( \@items ) }; print "@frequency\n"; sub frequency { my $items_ref = shift; my %counter; $counter{$_}++ for @{$items_ref}; return [ map { $counter{$_} } sort { $a <=> $b } keys %counter ]; }