##
use strict;
use warnings;
use Algorithm::Numerical::Shuffle qw(shuffle);
my @array = (1..10,2..11,3..12);
print " begin: @array\n";
my %seen;
my @unique = grep {!$seen{$_}++} @array;
print " unique: @unique\n";
my @shuffled = shuffle @unique;
print "shuffled: @shuffled\n";
####
my @unique = unique(@array);
####
sub unique {
my %seen;
my @unique = grep {!$seen{$_}++} @_;
return @unique;
}
####
sub unique { local %_; grep !$_{$_}++, @_ }