我们可以在捆绑哈希上使用Storable的存储方法吗?

时间:2013-11-07 11:57:52

标签: perl hash storable

尝试将哈希引用存储在Storable文件中,并且工作正常。但是我还要求按键排序 - 所以我使用了以下

tie %$hashref, 'Tie::IxHash'; store $hashref, $filename;

但这不起作用 - 文件被创建但是它的大小只有50个字节,当我使用retrieve()时,我得到一个空哈希。

我尝试使用Tie :: IxHash :: Easy(因为我的哈希是散列哈希),但无济于事。有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

您需要在填充之前绑定hashref

use strict; use warnings;
use Storable;
use Tie::IxHash;
use Data::Dumper;

my $filename= 'xxx';

my $hashref;
tie %{$hashref}, 'Tie::IxHash';
$hashref->{b}={c=>2, d=>{e=>3}};
$hashref->{a}=1;

print Dumper(before=>$hashref);

store $hashref, $filename;

print Dumper(after=>retrieve('xxx'));

返回

$VAR1 = 'before';
$VAR2 = {
          'b' => {
                   'c' => 2,
                   'd' => {
                            'e' => 3
                          }
                 },
          'a' => 1
        };
$VAR1 = 'after';
$VAR2 = {
          'b' => {
                   'c' => 2,
                   'd' => {
                            'e' => 3
                          }
                 },
          'a' => 1
        };