Если под мультикартой вы подразумеваете C ++ multimap , то ответ - да. В Perl карта соответствует хешу. Значение, связанное с данным ключом в хэше, может быть ссылкой на хэш. Perl также не требует, чтобы вы использовали ->
после первой операции индексации, поэтому вместо того, чтобы говорить $h{key1}->{key2}
, вы можете просто сказать $h{key1}{key2}
, что дает вам убедительную иллюзию многомерного хэша.
Вот пример:
#!/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;