Habe mehrere Hashes mit gültiges Keys (Wörter) und jeweils einem Value, das entweder '0' ist oder den Namen eines weiteren Hashes (z.B. %weitere) enthält. Die Keys der Hashes bilden am Ende einen Satz. Folgender Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
...
# die hashes:
%inst_base = ( "von MS Office XP Professional auf" => %pcs,
"von Adobe Creative Suite auf" => %pcs_macs,
"von Adobe GoLive auf" => %pcs_macs,
"von MS Windows 2000 Professional auf" => %pcs);
%pcs = ( "WORTMANN PC: P4, 3Ghz, 512MB Ram" => 0,
"Acer Aspire PC: AMD64 3200+" => 0,
"Sony VAIO Notebook FS1" => 0,
"Sony VAIO Notebook FS2" => 0);
%macs = ( "Apple iMac G4 700MHz" => 0,
"Apple iMac G5 20-Zoll" => 0,
"Apple iMac G5 17-Zoll" => 0,
"Apple PowerMac G5 Dual 2,5GHz" => 0,
"Apple PowerMac G5 Quad 2,5GHz" => 0,);
%pcs_macs = (%pcs, %macs);
# der code...
while ($weiter){
@temp = keys %hash;
$cur_key = $temp[rand @temp];
$satz.= " $cur_key";
if ($hash{$cur_key}){
%hash = $hash{$cur_key};
} else {
$weiter = 0;
}
}
print "\n$satz\n";
...
Ausgabe ist dabei aber leider folgende:
Odd number of elements in hash assignment at ./ber.pl line 57.
von MS Office XP Professional auf von Adobe Creative Suite auf
kurz gesagt, es hängt an folgender Zeile:
ist solch eine Zuweisung überhaupt realisierbar?
mfg