Mehrdimensionales Array
Marcel
- perl
Hallo
Ich möchte ein Mehrdimensionales Array, bzw. den Hash ausgeben. Wie muss ich das machen? Ich hab folgendes versucht, was aber einen Fehler generiert:
sub myforeach {
my %a = (A => "Hello", B => "World");
my %b = (A => "Hallo", B => "Welt");
my @data = ([%a], [%b]);
foreach(@data) {
print ($_{A} . "\t" . $_{B});
}
}
Gruss Marcel
Ich möchte ein Mehrdimensionales Array, bzw. den Hash ausgeben. Wie muss ich das machen? Ich hab folgendes versucht, was aber einen Fehler generiert:
Mit versuchen ist es oft so eine Sache, es gibt zu dem Thema ausreichend Dokumentation
[code lang=perl]
sub myforeach {
my %a = (A => "Hello", B => "World");
my %b = (A => "Hallo", B => "Welt");my @data = ([%a], [%b]);
Damit hast du mich verwirrt, und ich musste erst mit Data::Dumper nachschauen was du da machst. Du wandelst deine Hashs in zwei Arrays um.
du suchst:
my @data = (
{ A => 'Hello', B => 'World'},
{ A => 'Hello', B => 'World'}
)
;
Ein Array of Hashs
und dann statt:
foreach(@data) {
print ($_{A} . "\t" . $_{B});
}
foreach(@data) {
print ($_->{A} . "\t" . $_->{B});
}
Struppi.
Tag Struppi.
Mist, hätte ich den Postingtitel gelassen, wie er war, wäre ich erster gewesen ;-))
Siechfred
Hallo Siechfred
Mist, hätte ich den Postingtitel gelassen, wie er war, wäre ich erster gewesen ;-))
kann ich dich trösten, indem ich dir sage dass ich meistens von oben nach unten lese und damit deinen zuerst ;)
Gruß,
Benne
Mist, hätte ich den Postingtitel gelassen, wie er war, wäre ich erster gewesen ;-))
Naja wir machen ja kein Wettrennen, hier geht es um Qualität und Didaktik ;-)
Außerdem hattest du die passenden Links zur Hand
Struppi.
Tag Marcel.
Ich möchte ein Mehrdimensionales Array, bzw. den Hash ausgeben. Wie muss ich das machen?
Zunächst darf ich dir perllol zur Lektüre empfehlen.
my @data = ([%a], [%b]);
Nene, so funktioniert das nicht. Du möchtest ein Array von Hashes, kein Array von Arrays:
my @data = ({%a}, {%b});
foreach(@data) {
print ($_{A} . "\t" . $_{B});
}
Lies bitte den Abschnitt Access and printing:
foreach(@data) {
print ($_->{A} . "\t" . $_->{B});
}
Siechfred