Only notice that the array is different because before you did not want the last element, but know, you remove the last element of the array in the pop @array, so you do not have to skip the last element. Daniel.use strict; my @views = ( 'view0', 'view1', 'view3'); my $num_of_views = scalar(@views); my %hash; my @global_include = ("buffersize, size, value, speed", "buffersize, s +ize, value, speed","buffersize, size, value, speed"); my $lastview; my $output; for (my $j = 0; $j < $num_of_views; $j++){ my @array = split (", ",$global_include[$j]); pop @array; $hash{$views[$j]} = \@array; } foreach my $key (sort(keys %hash)){ # Do this only the first time. if(not defined($lastview)){ $lastview = $key; $output = "$key"; next; } $output .= " full outer join $key on "; my $i; my $array_elements_used = @{$hash{$key}}-1; #loop through all of the elements, including the last since you ha +ve removed it in the pop before!! for($i=0;$i<=$array_elements_used;$i++){ $output .= "$lastview.$hash{$lastview}[$i] = $key.$hash{$key}[$i +]"; # only add an "and" if this is not the last element used. $output .= " and " if ($i != $array_elements_used); } $lastview = $key; } print $output, "\n";
In reply to Re: Using hash elements to create an SQL Statemant
by BigD
in thread Using hash elements to create an SQL Statemant
by johnirl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |