#!/usr/local/bin/perl use 5.012; use List::Util qw/shuffle/; sub countingsort { my @bucket; $bucket[$_]++ for @_; map { ($_) x $bucket[$_] } 0..@bucket-1; } my @random = shuffle 1..42; say join(",", @random); say join(",", countingsort @random); say join(",", sort { $a <=> $b } @random);