我正在嘗試創建一個哈希值,以保存添加密鑰的順序。在this page的「創建散列並保留加入順序」部分下,它給出了修改散列的片段,因此當您執行keys
時,它將按照您將它們插入散列的順序返回鍵。在Perl中,如何在'use strict'開啓的情況下將Tie :: IxHash與字典一起使用?
當我做下面的代碼片段:
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.
我怎樣才能得到領帶:: 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
果然。這工作。更新第車票與所述完整的例子 – 2010-02-25 02:37:31
FWIW,CPAN的文檔是: '#簡單usage' '使用鐵:: IxHash;'' 扎HASHVARIABLE,領帶:: IxHash [,LIST];' 的沒有提到第二個參數是一個字符串! (但是使用引號的作品。) – Chap 2013-02-13 21:28:13
看看perldoc - http://perldoc.perl.org/perltie.html,'tie VARIABLE,CLASSNAME,LIST',以及這些例子都使用'CLASSNAME'的字符串。我會說這是CPAN上Tie :: IxHash文檔的一個問題。 – dsolimano 2013-02-14 18:41:13