Folgender Code funktioniert nicht:
my [at] dbs = ();
my %entries = ();
foreach my $entry ( [at] $eref) {
my ($db, $definition) = [at] $entry;
chomp $definition; # remove trailing \n
my ($key,$def) = split /\s*\n\s*/, $definition, 2;
$key_print = $key;
if ($last_db ne $db) {
push ( [at] dbs, $db); # remember sort order of $db
}
add_entry (\%entries,$db,$def,'');
$last_db = $db;
}
foreach my $db ( [at] dbs) {
my $hash_ref = \%entries;
my $def_ref = ${$hash_ref}{$db}; # FUNKTIONIERT NICHT
print "<br>db = $db key_ref = $def_ref ";
foreach my $def (sort keys %{$def_ref}) {
print "<br>db = $db def = $def";
}
}
print_keys (\%entries); # for Test only
sub add_entry {
my ($hashref,$db,$key,$value) = [at] _;
if ( exists ${$hash_ref}{$db} ) {
my $key_ref = ${$hash_ref}{$db};
${$key_ref}{$key} = $value;
}
else {
${$hash_ref}{$db} = { $key => $value };
}
}
sub print_keys {
my ($hashref) = [at] _;
foreach my $db (sort keys %{$hash_ref}) {
my $key_ref = ${$hash_ref}{$db}; # FUNKTIONIERT
foreach my $def (sort keys %{$key_ref}) {
print "<br>$db $def";
}
}
}
Die Ausgabe schaut dann (ohne HTML) so aus:
db = lasub key_ref =
[...]
lasub Viola adunca
lasub Viola affinis
lasub Viola agellae
[...]
Rätselhaft?
Helmut Wollmersdorfer
