use strict; use warnings; use Test::More tests => 2; sub uinq { local $_; @_ = do { @$_{@_}=(); keys %$_ } } my @array = (1,1,3,3,2,3,5,7,5,2); %$_ = ( f=>'oo', b=>'ar' ); is keys(%$_), 2; print "@{[ uinq @array ]}\n"; is keys(%$_), 2;