Thread Hash und Array (11 answers)
Opened by Graf Herschel at 2014-12-19 13:27

Linuxer
 2014-12-19 13:36
#178830 #178830
User since
2006-01-27
3888 articles
HausmeisterIn

user image
Da steckt am Anfang ein Fehler drin.

Die Hash-Deklaration sollte so gehen my %hash = (); oder wenn der Hash eh leer bleibt my %hash;.

Deine Variante erzeugt eine anonyme Hash-Referenz und weist diese dann dem benannten Hash zu. Mit aktivierten Warnungen sollte eigentlich so eine Meldung kommen: Reference found where even-sized list expected at - line 2.

Du hast damit einen Hash definiert, der als Key ein Literal der Hash-Referenz enthält, die aber keinen Wert zugewiesen hat, also undef.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
perl -Mstrict -w -MData::Dumper

my %hash = {};

print Dumper \%hash;

^D
Reference found where even-sized list expected at - line 2.
$VAR1 = {
'HASH(0x8b36818)' => undef
};


Ansonsten bleibt es ein Hash, dem Du mit Deiner Subroutine einen weiteren Key hinzufügst.
Innerhalb Deiner Sub legst Du dann eine Array-Referenz zu einem Key ab, das schaut soweit in Ordnung aus.

Doku zu den Datenstrukturen:

http://perldoc.perl.org/perldata.html
http://perldoc.perl.org/perldsc.html
http://perldoc.perl.org/perllol.html
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Hash und Array