in reply to Using hash elements to create an SQL Statemant

The new code should look like:
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";
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.