http://qs321.pair.com?node_id=897418

ihperlbeg has asked for the wisdom of the Perl Monks concerning the following question:

I have the following code:
#!/usr/bin/perl -w use strict; my @array = ("11 12","11 13", "9 8 7", "3 4", "11 4") ; my %gs_grp; #print join("\n",(@array)); #recording index of the array for each shared number my $count =0; for my $key (@array){ my @gs = split(/ /,$key); for my $gs(@gs){ push (@{$gs_grp{$gs}},$count); } $count++; } #combine index with shared number my @sp = @array; for my $gs(keys %gs_grp) { my @tmp=(); for my $grp ( @{ $gs_grp{$gs} } ) { next if(scalar @{ $gs_grp{$gs} }==1); push(@tmp,split(/ /, ($array[$grp]))); splice(@sp,$grp,""); } my %duplicate = map { $_ => 1 } @tmp; my @unique = keys %duplicate; push(@sp,join(" ",@unique)); } print join("\n", @sp); print "\n";

The output from the above code is Not correct

The output I want is this:

3 4 11 12 13 9 8 7

Could anyone please help me here? Thanks