#!/usr/bin/perl @arr=("1","2","3","4"); @sub=@arr; foreach (@arr){ $slot = int(rand(@sub)); ($new) = splice(@sub,$slot,1); push(@newarr,$new); } foreach (@newarr){ print "$_\n"; }