perl - 在 perl 中用散列编写交换键和值的最紧凑方法

标签 perl

我想通过在 perl 中交换散列中的键和值来创建一个新的散列。请注意,这样做是为了将重复值的键放入一个数组中,这与 reverse 所做的不同。

我显然可以为此做一个循环。但我不确定它是否可以以紧凑的形式完成,例如使用 map 等。

谢谢。

最佳答案

你可以像这样做一个“紧凑”的循环;

my %orig = # whatever
my %rev;
push @{$rev{$orig{$_}}}, $_ for keys %orig;

请注意,“反向”哈希的所有值都将是数组。

关于perl - 在 perl 中用散列编写交换键和值的最紧凑方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727071/

相关文章:

linux - asmcmd 返回错误 "Can' t 在 @INC 中找到模块 DBI 的可加载对象”

arrays - perl 组使用 fetchrow_hashref 生成散列

perl - 迁移 perl 模块

perl - 使用函数从对象或哈希中检索值

perl - 使用 Perl 以 UTF-8 模式写入文件

windows - Windows 上的 Perl、文件关联和 I/O 重定向

perl - 在 perl 中重写递归函数,以便它可以在列表上下文中使用

perl - MooseX::Types 强制转换和 $self

perl - 我如何使用 $File::Find::prune?

html - Perl Catalyst - 使用 href 链接到同一站点上的页面时找不到页面