#!/usr/bin/perl use strict; use warnings; use diagnostics; my %test = ( formate => { 'pa' => 'plain ANSI', 'pu' => 'plain UTF' }, variablen => { 'Var1' => { formate => { 'pa' => 1, 'pu' => 0 }, code => sub { 'foo1'; # natürlich wird hier viel viel mehr gemacht }, }, 'Var2' => { formate => { 'pa' => 0, 'pu' => 1 }, code => sub { 'foo2'; }, }, 'Var3' => { formate => { 'pa' => 1, 'pu' => 1 }, code => sub { 'foo3'; }, } } ); for my $format (sort keys %{$test{formate}}) { for my $var (sort keys %{$test{variablen}}) { print "$format fuehrt $var aus: " . $test{variablen}->{$var}->{code}() . "\n" if $test{variablen}->{$var}->{formate}->{$format}; } }