foreach $tbl1_primary (keys(%$table1)) { foreach (keys(%$table3)) { while ( $table3->{$_}{$table1->{$tbl1_primary}{foreign_key}} == $table3->{$_}{foreign_key} ) { $table1_foreign_key_table3 = $table3->{$_}{$table1->{$tbl1_primary}{foreign_key}}; } } }