【发布时间】:2014-05-03 00:14:42
【问题描述】:
如何在 Perl 中将数组(如以下示例中的元组)放入哈希中?
%h=();
@a=(1,1);
$h{@a}=1 or $h{\@a}=1??
我尝试使用数组引用,但它不起作用。我该如何让它发挥作用?我想通过散列(除其他外)来消除重复数据。
【问题讨论】:
-
您需要为您的数组设计自己的哈希算法,然后将其用作您的密钥。
-
你能举个例子吗?
-
这是不可能的:所有键都必须是字符串。但是,您可以连接数组的各个部分以形成一个带有字符的键,您可以保证不会出现在值中。这可能是一个 NUL 字节:
$h{join "\x00", @a} = 1. -
@mpapec 这是古老的多维数组仿真(在语言中没有引用之前)。这些项目由
$;连接以形成一个密钥。这不值得鼓励。有关说明,请参阅 perlvar。 -
@mpapec:
$;的默认值 - 下标分隔符。选择该值是因为它与 AWK 用于SUBSEP的值相同。在perlvar阅读它。
标签: perl