#!/usr/bin/perl use strict; my @views = ( 'view0', 'view1'); my $num_of_views = scalar(@views); my %hash; my @global_include = ("size, buffersize, value", "size, buffersize, value"); my $lastview; my $output; for (my $j = 0; $j < $num_of_views; $j++){ my @array = split (", ",$global_include[$j]); pop @array; $hash{$j} = \@array; } #for (my $j = 0; $j < $num_of_views; $j++){ # my $ref = $hash{$j}; # print "HASH CONTAINS FOR $j: "; # foreach (@$ref){ # print "$_\n"; # } #} 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 = scalar(@{ $hash{$key} })-1; #loop through all of the elements except for the last 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-1)); } $lastview = $key; } print $output, "\n";