[perl] array of hashes

Pagina: 1
Acties:

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Ik heb een functie die een array of hashes zou moeten teruggeven, echter ik krijg niet de juiste values eruit :(

Ziet iemand misschien wat ik fout doe, ik weet zeker dat de functie wel het juiste aantal hashes teruggeeft maar vervolgens lukt het me niet om de juiste paren te tonen.
code:
1
2
3
4
5
6
7
8
my @mijnfields = getfields(9205,1);
foreach my $veldhash (@mijnfields)
{
    foreach $my_key (keys (%veldhash)) {
        print $veldhash{$my_key};
    }

}

Een voorbeeld om door een array of hashes te loopen is op zich ook voldoende, heb wel wat documentatie gevonden maar kwam er niet helemaal uit :(

Verwijderd

Op dinsdag 08 januari 2002 13:00 schreef raptorix het volgende:
code:
1
2
3
4
5
6
7
8
my @mijnfields = getfields(9205,1);
foreach my $veldhash (@mijnfields)
{
    foreach $my_key (keys (%veldhash)) {
        print $veldhash{$my_key};
    }

}
Je loopt er op zich goed doorheen, maar je doet een ding fout:
Allereerst moet je weten of er in die array hashes zitten of hashreferences.

In het geval van gewone hashes moet je regel: "foreach my $veldhash (@blablabalbl..."
veranderen in "foreach my %veldhash (@blablablab..."

In het geval van hashreferences moet je de regel: "print $veldhash{$my_key};" veranderen in "print $veldhash->{$my_key};"

  • Juup
  • Registratie: Februari 2000
  • Niet online
Ehm... je hebt inderdaad een array met (anonieme)referenties naar hashes. Deze moet je dereferencen als je ze wilt uitlezen. Dus dan krijg je iets als
code:
1
2
3
foreach (keys %$veldhash)
{ print $_ . ': ' . $$veldhash{$_} . "\n";
}

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.