Perl a Multimap - perl

Existuje spôsob, ako implementovať C ++ multimap v perle?

odpovede:

7 pre odpoveď č. 1

Použite a hash polia.

my %students = ( # keys are IDs, values are enrollments
100023 => [qw(Geography Mining)],
100058 => [qw(Geography Geology Woodcraft)],
);

3 pre odpoveď č. 2

Ak je to multimap, znamená to C ++ multimap, potom odpoveď je áno. V Perle, mapa zodpovedá hash. Hodnota priradená danému kľúču v haši môže byť odkazom na hash. Perl tiež nevyžaduje použitie -> po prvej operácii indexovania, teda namiesto toho, aby hovoril $h{key1}->{key2} môžete len povedať $h{key1}{key2} čo vám dáva presvedčivú ilúziu mnohorozmerného hash.

Tu je príklad:

#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

my %h;

my $i;
for my $k (qw/one two three/) {
for my $j (qw/a b c/) {
$h{$k}{$j} = $i++;
}
}

print "one b should be 1: $h{one}{b}n",
Dumper %h;