Marcel: Problem mit Datenstruktur

Hallo

Ich habe folgendes

  
 #%hash = ( Objekt => A, Attribute => { Name => "Meier", Vorname => [ "Marcel", "Stefan" ] } );  
  %hash = ( Objekt => A, Attribute => ( Name => "Meier", Vorname => [ "Marcel", "Stefan" ] ) );  
  
  print $hash{Attribute}{Vorname}[0];  

Wobei die auskommentierte Zeile Funktioniert, die andere aber nicht. Warum müssen hier geschwungene Klammern verwendet werden? Gibt es da eine Regel wie ich mir merken kann welche Klammern zu verwenden sind?

Gruss Marcel

  1. Hallo,

    http://www.perl.com/doc/manual/html/pod/perlref.html,
      gibts bestimmt noch irgendwo auf Deutsch, findest du aber mir der Suchmaschine deiner Wahl.

    gruss

    --
    Swiss Army Chainsaw
    Terrorific!
    Given a cow full of milk, should the milk un-cow itself, or should the cow milk itself?
  2. Hallo

    #%hash = ( Objekt => A, Attribute => { Name => "Meier", Vorname => [ "Marcel", "Stefan" ] } );
      %hash = ( Objekt => A, Attribute => ( Name => "Meier", Vorname => [ "Marcel", "Stefan" ] ) );

      
    geschweifte Klammern erzeugen eine Referenz auf einen Hash. Und genau das brauchst du hier. Alles andere kann hier nicht funktionieren.  
    Vielleicht willst du dir nochmal das Kapitel über [Hashes](http://de.selfhtml.org/perl/sprache/hashes.htm) und [Referenzen](http://de.selfhtml.org/perl/sprache/referenzen.htm) durchlesen ;)  
      
    also nochmal:  
    {} -> Referenz auf einen Hash  
    [] -> Referenz auf einen Array  
      
    Gruß,  
    Benne
    
    -- 
    ie:% fl:( br:> va:) ls:> fo:| rl:° ss:) de:[ js:| ch:| mo:} zu:)