Thread Experimental keys on scalar is now forbidden at..
(8 answers)
Opened by wollik at 2019-12-10 22:04
Das merkwürdige an Deiner Struktur ist die Nutzung von Keys wie '%Hash1'. Als Schlüssel Deines Geräte_Hash kannst Du doch direkt die Gerätenamen verwenden (ist das die "ID"?) - und als zugehörigen Wert den Hash, der zu dem entsprechenden Gerät passt.
Code (perl): (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 use 5.020; use warnings; my %Geraete_Hash = ( 'Hammer' => { TYPE => 417, Adresse => 'Pseudopolis Yard', ID => 'Ist das der Name des Geräts?', Gewicht => 500, }, 'Bohrer' => { TYPE => 413, Adresse => 'Treacle Mine Road', ID => 'Black & Decker', Leistung => 800, } ); foreach my $geraet (sort keys %Geraete_Hash) { say "$geraet:"; my %geraet = %{$Geraete_Hash{$geraet}}; foreach my $key (sort keys %geraet) { say " $key = $geraet{$key}"; } } Jedes Gerät im "großen" Hash kann bei Bedarf unterschiedliche Keys mitbringen. Nur wenn die Namen der allgemeingültigen Parameter mit denen eines bestimmten Typs kollidieren können, muss man da aufpassen. Das ganze riecht natürlich nach einem Problem, dessen Lösung sich mit Perls Objektorientierung recht lesbar hinschreiben ließe. Aber das ist ein anderes Paar Schuhe. |