sub uinq { # local *_; # <== will fail, $_ will work @_ = do { @$_{@_}=(); keys %$_ }; @_ } my @array = (1,1,3,3,2,3,5,7,5,2); print "@{[ uinq @array ]}\n";