[EMAIL PROTECTED] wrote: > Hi, > In the script below, I have an array @datas with its elements consisting of > numbers like this :- > > my @datas = ( > '1 2 3', '1 2 4', '1 2 7', '1 2 8', '1 2 9', '1 6 7', > '1 7 12', '2 6 7', '4 5 10', '4 5 15' > ); > > Out of the above list, I wish to generate a seperate array so that among > their elements, there should not be any 2 numbers that can match and so the > output should be :- 1 2 3 > 1 6 7 > 4 5 10 > > I therefore have written the script below and have tested the script to be > working. What is the easier way to write this script? > Thanks > > ##### start of script ############## > use strict; > use warnings; > > my @datas = ( > '1 2 3', '1 2 4', '1 2 7', '1 2 8', '1 2 9', '1 6 7', > '1 7 12', '2 6 7', '4 5 10', '4 5 15' > ); > my $numbers_wanted = 2; > > my @datawanted = (); > my $marker = scalar @datas; > my $splice_counter = 0; > my @datas_iterator = (); > > while ($marker) { > $splice_counter = 0; > push @datawanted, splice @datas, 0, 1; > my @comparator1 = split / /, $datawanted[-1]; > my $temp_datas_iterator = scalar @datas - 1; > > foreach ( 0 .. $temp_datas_iterator ) { > my $counter = 0; > my @comparator2 = split / /, $datas[ $_ - $splice_counter ]; > > foreach (@comparator2) { > my $a = $_; > foreach (@comparator1) { > if ( $a == $_ ) { > $counter++; > } > } > } > if ( $counter >= $numbers_wanted ) { > splice @datas, $_ - $splice_counter, 1; > $splice_counter++; > } > } > $marker = scalar @datas; > } > > foreach (@datawanted) { > print "$_\n"; > } > > > I don't have the solution yet but shouldn't the answer be
1 6 7 and 4 5 10 only ? it's printing out 1 2 3 as well which is wrong? -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/