Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8916[/thread]

3dimensionale hashes und die ausgabe

Leser: 1


<< >> 4 Einträge, 1 Seite
v0id
 2007-04-11 18:11
#75954 #75954
User since
2005-07-06
33 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich hab wieder ein problem und seh den wald vor lauter bäumen gar nicht mehr.

ich habe ein hash of hashes das mit dem dumper auch richtig ausgegeben wird und ordentlich aussieht, wie folgt:

$VAR1 = {
'unwichtig' => {
'begin' => {
'name' => 'unwichtig',
'year' => 2006,
'minute' => 38,
'second' => 49,
'month' => '09',
'day' => 29,
'hour' => '02'
},
'end' => {
'name' => 'unwichtig',
'year' => 2007,
'minute' => 33,
'second' => 29,
'month' => '04',
'day' => 11,
'hour' => '02'
}
},
'nichts' => {
'begin' => {
'name' => 'nichts',
'year' => 2006,
'minute' => 50,
'second' => 36,
'month' => 10,
'day' => 26,
'hour' => '03'
},
'end' => {
'name' => 'nichts',
'year' => 2007,
'minute' => '07',
'second' => 19,
'month' => '04',
'day' => 10,
'hour' => 11
}
},
usw usw..

mein ausgabe foreach schaut so aus
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    40  foreach my $session (%dif_hash)
41 {
42
43 print $session . "\n";
44 #$x++;
45 #print "\n\n". $dif_hash{$session}{'begin'}{'name'};
46 #print " " . $dif_hash{$session}{'begin'}{'hour'};
47 #print "" . $dif_hash{$session}{'begin'}{'minute'};
48 #print "" . $dif_hash{$session}{'begin'}{'second'};
49 #print " " . $dif_hash{$session}{'begin'}{'day'};
50 #print "" . $dif_hash{$session}{'begin'}{'month'};
51 #print "" . $dif_hash{$session}{'begin'}{'year'};
52 #print "\n";
53 #print $dif_hash{$session}{'end'}{'name'};
54 #print " " . $dif_hash{$session}{'end'}{'hour'};
55 #print "" . $dif_hash{$session}{'end'}{'minute'};
56 #print "" . $dif_hash{$session}{'end'}{'second'};
57 #print " " . $dif_hash{$session}{'end'}{'day'};
58 #print "" . $dif_hash{$session}{'end'}{'month'};
59 #print "" . $dif_hash{$session}{'end'}{'year'};
60 #print "\n\n";
61
62 }
63


was is daran falsch? jede zweite session die ausgegeben wird sieht in etwa so aus HASH(0xa2c04)

es schaut im dumper doch alles in ordnung aus und die ausgabe funktioniert auch auf die weise :-/

ein verzweifelter gruß

v0id
Taulmarill
 2007-04-11 18:16
#75955 #75955
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
So wie du das schreibst, kommt in $session eine Referenz auf den jeweils nächsten Hash rein. Soweit ich das erkennen kann willst du aber die Keys. Die bekommst du mit for my $session ( keys %dif_hash ) { ...
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
v0id
 2007-04-12 09:08
#75956 #75956
User since
2005-07-06
33 Artikel
BenutzerIn
[default_avatar]
es ist wirklich der fall gewesen! Danke sehr!! :)
was passiert denn in dem anderen fall, rein interesse halber..
Struppi
 2007-04-12 12:50
#75957 #75957
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Mit for() durchläufst du eine Liste, da ein HASH eine Liste ist, wird jeder Schlüssel und jeder Wert durchlaufen, da dein HASH referenzen als Werte enthält werden diese als HASH(...) ausgegeben.
<< >> 4 Einträge, 1 Seite



View all threads created 2007-04-11 18:11.