while(my $line = ) { chomp $line; push @array, $line; } for (my $i=0; $i<396; $i++) { @new_array=(); @numbers=(); if(exists $hash{$i}) { print OUT1 "$i\n"; } else { @new_array=split('\s', $array[$i]); foreach my $el(@new_array) { chomp $el; push @numbers, split('\s+', $array[$el-1]); } @numbers= uniq(@numbers); @numbers= sort @numbers; $new[$i]=@numbers; foreach my $arg(@numbers) { print OUT "$arg\n"; $hash{$arg}=$arg; } } } sub uniq { return keys %{{ map { $_ => 1 } @_ }}; }