my @array1 = (1 .. 20); my @array2 = (10 .. 30); my @array3 = (19 .. 40); my @unique_numbers = do{ local %_; undef @_{@array1, @array2, @array3}; sort {$a<=>$b} keys %_; }; dump_ref(\@unique_numbers, '@unique_numbers'); __OUTPUT__ @unique_numbers = ['1','2','3','4','5','6','7','8','9','10', '11','12','13','14','15','16','17','18','19','20', '21','22','23','24','25','26','27','28','29','30', '31','32','33','34','35','36','37','38','39','40']