Thread Array push klappt nicht richtig
(5 answers)
Opened by Tino at 2014-06-08 23:37
Naja, Perl sagt's Dir ja in der Fehlermeldung: Du versuchst, den Skalar 'OK' als Arrayref zu verwenden:
Code: (dl
)
join(".", @{ $lang{$_}->{$sesslang} }) In $lang{$_}{$sesslang} steht (für $_='ok' und $sesslang='de') aber nur 'OK'. Ich vermute mal, Du willst alle zu einer bestimmten Sprache $sesslang gehörigen Werte listen, so etwa 'lang_de' Dann schreibst Du sowas wie Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 my %lang; $lang{"status"}{"de"} = "Status"; $lang{"filter_on"}{"de"} = "eingeschaltet"; $lang{"filter_off"}{"de"} = "ausgeschaltet"; $lang{"ok"}{"de"} = "OK"; $lang{"status"}{"en"} = "State"; $lang{"filter_on"}{"en"} = "on"; $lang{"filter_off"}{"en"} = "off"; $lang{"ok"}{"en"} = "OK"; my %test; my $sesslang = 'de'; for my $keyword ( keys %lang ) { print "Add $keyword with $lang{$keyword}{$sesslang} for Sessionlang $sesslang <br>\n"; push @{ $test{"lang_$sesslang"} }, $lang{$keyword}{$sesslang}; } print join '.', @{ $test{lang_de} }; print "<br>\n"; Ausgabe Code: (dl
)
1 Add ok with OK for Sessionlang de <br> Beachte, dass die Reihenfolge der Keywords durch die Verwendung von Hashes nicht Du solltest vielleicht nochmal in perldsc reinschauen. Vielleicht kann eine andere Datenstruktur Deinen Bedarf besser abbilden. Editiert von FIFO: typo Editiert von FIFO: strike: Falsch ausgedrückt. Last edited: 2014-06-09 12:18:04 +0200 (CEST) Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
|