Thread hash in hash: ein hash in ein anderes füllen (5 answers)
Opened by dani at 2005-06-22 15:23

esskar
 2005-06-22 15:37
#55663 #55663
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
du musst den hash als referenz speichern

Code: (dl )
$all{counter} = \%data; 


\%data ist dann quasi eine referenz (pointer) auf den eigentlichen hash
hier musst du auf passen

schlecht!
Code: (dl )
1
2
3
4
5
6
my %data = ();
while( ... ) {
if(...) {
$all{counter} = \%data;
}
}

da, %data immer der selbe hash ist, und somit die referenz auch immer die gleiche ist: so überschreibst du dir die daten, die zu dem record davor gehörten

VS.

gut!
Code: (dl )
1
2
3
4
5
6
while( ... ) {
my %data = ();
if(...) {
$all{counter} = \%data;
}
}

View full thread hash in hash: ein hash in ein anderes füllen