Alexander (HH): Wertzuweisung an Variable in Variable

Beitrag lesen

Moin Moin!

Hallo,
danke erstmal.
Das von Dir vorausgesagte Ergebnis erhalte ich leider nicht.
Bei mir ist der hash leer (wenn ich alles richtig gemacht habe).
Ich verstehe leider den folgenden Ausdruck nicht, so dass ich auch nicht herumprobieren kann.

Versuch mal die exzellente Dokumentation zu lesen, dann brauchst Du nicht unendlich viele Affen an unendlich vielen Schreibmaschinen zu simulieren.

Fang mit http://perldoc.perl.org/5.8.8/perlintro.html an, dann http://perldoc.perl.org/5.8.8/perlreftut.html, http://perldoc.perl.org/5.8.8/perllol.html, http://perldoc.perl.org/5.8.8/perlref.html, http://perldoc.perl.org/5.8.8/CGI.html, http://perldoc.perl.org/5.8.8/Data/Dumper.html. Folge Links in den Dokumenten.

Mit welchem print erhalte ich den Wert von name1?

*DEN* impliziert, dass es exakt einen Wert gibt. Im CGI-Umfeld kann es zu einem Parameternamen auch mal KEINEN Wert oder BELIEBIG VIELE Werte geben.

  
if (exists $data{'name1'}) {  
    foreach my $value (@{$data{'name1'}}) {  
        print "name1=$value\n";  
    }  
    # für den 43. Wert:  
    print $data{'name1'}->[42];  
}  
  
# für eine Übersicht aller Werte  
use Data::Dumper;  
  
print Dumper(\%data);  

my %data=map { $_ => [ $query->param($_) ] } $query->param();

  
Die param()-Methode des CGI-Moduls liefert eine Liste aller Parameternamen, wenn man sie selbst ohne Argumente aufruft. map iteriert über diese Liste, setzt $\_ nacheinander auf jedes einzelne Element der Liste, und liefert eine Liste aller Rückgabewerte des Blocks unmittelbar hinter map. Für jeden einzelnen Wert der ersten Liste liefert dieser Block eine Liste mit exakt zwei Elementen, dem Parameternamen und einer Array-Referenz, die den Rückgabewert der param()-Methode für den Parameternamen im Listenkontext (sprich: alle CGI-Parameter-Werte für den Parameternamen) enthält. Diese Liste wird schließlich an %data zugewiesen, wobei das erste, dritte, fünfte, ... Element der Liste als Schlüssel und der zweite, vierte, sechste, ... Element als dazugehörender Wert benutzt werden.  
  
Alexander

-- 
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".