perl - 在 Perl 中,如何在 'use strict' 打开时将 Tie::IxHash 与字典一起使用?

标签 perl

我正在尝试创建一个散列,以保留添加键的顺序。在 this page 的“创建哈希并保留加法顺序”部分下,它给出了一个修改哈希的片段,所以当你做 keys 时它按照您将它们插入散列的顺序返回 key 。

当我执行以下代码段时:

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.

我怎样才能让 Tie::IxHash 在 use strict 时工作是吗?

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/

相关文章:

perl - 目前有没有关于 Perl 统计模块的评论?

mysql - MySQL 和 DBI 中的 Perl 错误

perl - 为什么直接设置 @ISA 在此示例中不起作用?

perl - 如何使用 Perl 和 Apache 防止跨站点请求伪造?

linux - 对于文件中的每一行同步执行命令并保存到另一个文件的换行符

linux - 如何运行同一脚本的多个 perl 实例?

html - 输出 InnerHTML Perl LibXML

perl - 运行 Inline::C 时出错

Perl:进行最长前缀匹配的最佳方法(字符串)

perl - 如何在 Perl 中自动释放资源 RAII 样式?