Thread Array push klappt nicht richtig (5 answers)
Opened by Tino at 2014-06-08 23:37

FIFO
 2014-06-09 09:46
#175953 #175953
User since
2005-06-01
469 Artikel
BenutzerIn

user image
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
2
3
4
5
Add ok with OK for Sessionlang de <br>
Add filter_off with ausgeschaltet for Sessionlang de <br>
Add status with Status for Sessionlang de <br>
Add filter_on with eingeschaltet for Sessionlang de <br>
OK.ausgeschaltet.Status.eingeschaltet<br>


Beachte, dass die Reihenfolge der Keywords durch die Verwendung von Hashes nicht bei jeder Sprache gleich sein muss der Reihenfolge beim Erzeugen der Elemente entspricht.

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"

View full thread Array push klappt nicht richtig