Thread Innerhalb Hash Def auf Keys zugreifen
(42 answers)
Opened by bianca at 2013-09-08 06:08
Hallo,
hier mal ein Vorschlag mit "die Formate wissen ...": Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #!/usr/bin/perl use strict; use warnings; use diagnostics; my %test = ( formate => { 'plain ANSI', => [qw(Var1 Var3)], 'plain UTF' => [qw(Var2 Var3)] }, variablen => { 'Var1' => sub { 'foo1'; # natürlich wird hier viel viel mehr gemacht }, 'Var2' => sub { 'foo2'; }, 'Var3' => sub { 'foo3'; } } ); for my $format (sort keys %{$test{formate}}) { for my $var (@{$test{formate}->{$format}}) { print "$format fuehrt $var aus: ". $test{variablen}->{$var}()."\n"; } } Das ist schon deutlich übersichtlicher, als Dein (biancas) Ansatz, oder? Aber auch der umgekehrte Weg ist mit einfacheren Strukturen möglich: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 #!/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}; } } HTH Grüße payx Editiert von payx: typo (führt mit h) Last edited: 2013-09-09 10:08:45 +0200 (CEST) |