foreach-Schleife mit Array von Hashes?

02/10/2008 - 01:30 von Frank Glück | Report spam
Hallo zusammen,

für eine Tabellenumsetzung von einem SGML-Dialekt nach HTML muss ich für
jede vordefinierte Spalte bestimmte Attribut-Werte zwischenspeichern:




schnipp =my @spalten;






$spalten[0]{width} = "20*";

$spalten[0]{vertikale_linie} = 1;
$spalten[1]{width} = "40*";
$spalten[1]{vertikale_linie} = 0;

<<< schnapp =
Anschließend möchte ich diese Werte wieder abrufen. Das hier funktioniert
auch wie erwartet:




schnipp =print "$spalten[0]{width}"; # Ausgabe: "20*"







<<< schnapp =
Aber automatisiert in einer foreach-Schleife bekomme ich es einfach nicht
hin. Warum klappt sowas hier nicht:




schnipp =foreach (@spalten) {






print "$_{width}"; # Ausgabe: [leer]
}
<<< schnapp =
Wie geht es richtig?
Bin für jeden Hinweis dankbar!

Schöne Grüße,
Frank
 

Lesen sie die antworten

#1 Moritz Lenz
02/10/2008 - 09:02 | Warnen spam
Frank Glück wrote:
Aber automatisiert in einer foreach-Schleife bekomme ich es einfach nicht
hin. Warum klappt sowas hier nicht:

>>> schnipp => foreach (@spalten) {
print "$_{width}"; # Ausgabe: [leer]
}
<<< schnapp =


Weil $_ kein Hash ist, sondern eine Refernz auf einen Hash enthàlt. Wenn
du "use strict;" verwendet hàttest (sehr zu empfehlen) hàttest du eine
entsprechende Fehlermeldung bekommen.

Richt wàre
print $_->{width} for @spalten;

Siehe auch http://perldoc.perl.org/perlreftut.html

Moritz

Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/

Ähnliche fragen