#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @array1 = ( "Tabelle_X where Bedingung1 = '...' and Bedingung2 = '...'", "Tabelle_X where Bedingung1 = '...' and Bedingung2 = '...'", "Tabelle_X where Bedingung1 = '...'", "Tabelle_Y where Bedingung1 = '...' and Bedingung2 = '...'", "Tabelle_Y where Bedingung1 = '...'", "Tabelle_Z where Bedingung1 = '...' and Bedingung2 = '...'", ); my @array2 = ( "Tabelle_X : Feld1 Feld2 Feld3", "Tabelle_Y : Feld1 Feld2", "Tabelle_Z : Feld1 Feld2 Feld3", ); print Dumper \@array1; print Dumper \@array2; my @array3; my $i1 = 0; my $i2 = 0; while ($i1 < scalar @array1 and $i2 < scalar @array2) { my ($tab1, $where) = split / /, $array1[$i1], 2; my ($tab2, $fields) = split / : /, $array2[$i2], 2; #print "i1=$i1, i2=$i2, tab1=$tab2, tab2=$tab2, where=$where, fields=$fields\n"; if ($tab1 eq $tab2) { push @array3, "select $fields from $tab1 $where"; ++$i1; } else { ++$i2; } } print Dumper \@array3;