Perl Storable检索一组Moose对象

时间:2013-05-27 05:42:06

标签: perl moose storable

我尝试将一组Moose对象存储到YAML或JSON。

保存效果很好,但是当我尝试恢复我的对象时,它们是空的:

$VAR1 = bless({}, 'Note');
$VAR2 = bless({}, 'Note');

这是我的代码:

Note.pm:

package Note;
use strict;
use warnings;
use Moose;
use MooseX::Storage;

with Storage('format' => 'JSON', 'io' => 'File');

has 'message' =>(is=> 'rw', isa =>'Str');

1;

testNote.pl:

use strict;
use warnings;
use utf8;
use feature 'say';
use Note;
use Storable;
use MooseX::Storage;
use Data::Dumper;
use JSON;

my @container=();

my $obj = Note->new;

$obj->message("firstmessage");
say $obj->message;

push(@container,$obj);

my $obj2 = Note->new;
$obj2->message("secondmessage");

push(@container,$obj2);

my @output=();

for my $counter (0 .. $#container){
    push(@output,$container[$counter]->pack());
}
say "Output packed strings:" ;
for my $counter(0 .. $#output){ 
    say $output[$counter];
}

store \@output, 'saveNotes';

my @Notes=();

my @fin=@{retrieve('saveNotes') };
say "After reading file:";

@Arr=();
for my $counter (0 .. $#fin){
    push(@Arr,Note->unpack($fin[$counter]));
}

say Dumper(@Arr);

希望有人可以提供帮助:)

0 个答案:

没有答案