Perl 创建辅助哈希表以快速搜索值
我有以下格式的hashref:Perl 创建辅助哈希表以快速搜索值,perl,hashtable,hashref,Perl,Hashtable,Hashref,我有以下格式的hashref: { introduction_to_systems => { writer => "John", owner => "Jim" }, management_recipies => { writer =&g
{
introduction_to_systems => {
writer => "John",
owner => "Jim"
},
management_recipies => {
writer => "Jane",
owner => "Jim"
},
etc
}
我的问题是这个散列不是很方便。我也希望能够很容易地找到“吉姆”或“约翰”是作家所拥有的一切
基本上我需要这个哈希表的两个倒数。在perl中,最有效的方法是什么?因为每个所有者和编写者都可以拥有和编写许多东西,您必须将一系列书籍作为值进行哈希处理。你可以用很多方法来做。例如:
#!/usr/bin/env perl
use strict;
use warnings;
my $books = {
introduction_to_systems => {
writer => "John",
owner => "Jim"
},
management_recipies => {
writer => "Jane",
owner => "Jim"
},
};
my ( %owns, %wrote );
for my $book ( keys %$books ) {
my $rec = $books->{$book};
push @{ $owns{ $rec->{owner} } }, $book;
push @{ $wrote{ $rec->{writer} } }, $book;
}
print "Jim owns @{$owns{Jim}}\n";
print "John wrote @{$wrote{John}}\n";
您能否指出预期的条目数以及如何填充哈希?我想这可能会影响最佳选项。@Andrzej A.Filip:3-4K条目。什么意思?如何填充散列?如何用4K条目填充空散列?顺便问一下,您是否考虑过使用“内存中”SQLite数据库?[对于4K条目可能有一定意义]