#!/usr/bin/perl -w

sub counting_sort {
    my ($array, $max) = @_; # All @$array elements must be 0..$max.
    my @counter = (0) x ($max+1);
    foreach my $elem ( @$array ) { $counter[ $elem ]++ }
    return map { ( $_ ) x $counter[ $_ ] } 0..$max;
}

@array = (43, 97, 40, 81, 99, 1, 21, 19, 23, 10);
print join(' ', counting_sort(\@array, 99));

