#!/usr/bin/env perl use strict; use warnings; use Data::Dump; use feature qw(say); my @array = ( 29, 24, 0, 24, 24, 12, 0, 0, 10, 10, 10, 19, 17, 15, 13, 1, 12, 12, 24 ); dd uniq( \@array ); sub uniq { my $array = shift; my $last = @$array[0]; my @uniq; for my $item ( sort { $a <=> $b } @$array ) { if ( $item != $last ) { $last = $item; push @uniq, $item; } } return \@uniq; } __END__ [0, 1, 10, 12, 13, 15, 17, 19, 24, 29]