HoH - ich steh auf der Leitung
am 18.11.2006 22:15:17 von Helmut WollmersdorferFolgender Code funktioniert nicht:
my @dbs = ();
my %entries = ();
foreach my $entry (@$eref) {
my ($db, $definition) = @$entry;
chomp $definition; # remove trailing \n
my ($key,$def) = split /\s*\n\s*/, $definition, 2;
$key_print = $key;
if ($last_db ne $db) {
push (@dbs, $db); # remember sort order of $db
}
add_entry (\%entries,$db,$def,'');
$last_db = $db;
}
foreach my $db (@dbs) {
my $hash_ref = \%entries;
my $def_ref = ${$hash_ref}{$db}; # FUNKTIONIERT NICHT
print "
db = $db key_ref = $def_ref ";
foreach my $def (sort keys %{$def_ref}) {
print "
db = $db def = $def";
}
}
print_keys (\%entries); # for Test only
sub add_entry {
my ($hashref,$db,$key,$value) = @_;
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) = @_;
foreach my $db (sort keys %{$hash_ref}) {
my $key_ref = ${$hash_ref}{$db}; # FUNKTIONIERT
foreach my $def (sort keys %{$key_ref}) {
print "
$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