Marcel: Mehrdimensionales Array

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

  1. 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.

    1. Tag Struppi.

      Mist, hätte ich den Postingtitel gelassen, wie er war, wäre ich erster gewesen ;-))

      Siechfred

      1. 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

        --
        ie:% fl:( br:> va:) ls:> fo:| rl:° ss:) de:[ js:| ch:| mo:} zu:)
      2. 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.

  2. 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