Moin Ich habe hier gerade ein problem mit hashes unter Perl. Sind ja schoene dinger eigentlich, wenn man sie auch ohne probleme auslesen koennte. Folgendes Szenario (kann komisch aussehen, bin 'strict' fan): my (%data); $data{'foo'} = 12; $data{'bar'}{'baz'} = 23; $data{'bar'}{'quux'} = 34; Wenn ich nun ein: while (($key,$value) = each %data) { print "$key=$value\n"; } mache, funktioniert das ja auch 1a, ausser dass ich dann bei $data{'bar'} den wer "HASH(0xirgendwas)" sehe. Da dachte ich mir, gehe ich rekursiv durch den hash. Das klappt aber noch nicht so. Versucht habe ich es folgender massen, was aber daran scheitert dass man an subs keine hashes uebergeben wie mir scheint. sub recurse_hash { my ($key, $value); while (($key,$value) = $_[0]) { if (ref($key) eq "HASH") { recurse_hash($data{$key}); } else { print "$key=$value\n"; } } } recurse_hash(%data); Es wird also kontrolliert, ob $data{'bar'} nen HASH ist, wenn ja, das ganze prozedere von vorne. Leider geht $_[0] aber nicht, und %_[0] ist syntaktisch nicht moeglich. Muss ich da irgendwie mit referenzen arbeiten? Wenn ja wie? MfG/Regards, Alexander, der sich immer noch kein Cookbook gekauft hat :) -- Alexander Reelsen http://joker.rhwd.de ar@rhwd.net GnuPG: pub 1024D/F0D7313C sub 2048g/6AA2EDDB 7D44 F4E3 1993 FDDF 552E 7C88 EE9C CBD1 F0D7 313C - Hinweise zur Benutzung dieser (und anderer Mailing-Listen) bitte beachten: --> http://lug-owl.de/mailinglist_hints.html <--
Teilnehmer (2)
-
Alexander Reelsen
-
Florian Lohoff