我正在尝试创建一个哈希,以保留键添加的顺序。在this page的“创建哈希并保留添加顺序”部分下,它提供了一个修改哈希的代码段,因此当您执行keys时,它将按将它们插入哈希的顺序返回键。

当我执行以下代码段时:

use strict;
our %foo;
use Tie::IxHash;
tie (%foo, Tie::IxHash);

它失败并显示:
Bareword "Tie::IxHash" not allowed while "strict subs" in use at /nfs/pdx/home/rbroger1/tmp.pl line 4.
Execution of /nfs/pdx/home/rbroger1/tmp.pl aborted due to compilation errors.

use strict打开时,如何使Tie::IxHash正常工作?

dsolimano的示例奏效。
use strict;
our %foo;
use Tie::IxHash;
tie (%foo, "Tie::IxHash");

$foo{c} = 3;
$foo{b} = 2;
$foo{a} = 1;

print keys(%foo);

打印:
cba

没有tie...Tie::IxHash
cab

最佳答案

tie的第二个参数是字符串,因此请尝试

use strict;
our %foo;
use Tie::IxHash;
tie (%foo, 'Tie::IxHash');

关于perl - 在Perl中,当 'use strict'打开时,如何在字典中使用Tie::IxHash?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2331084/

10-10 04:00