Moose オブジェクトの配列を YAML または JSON に保存しようとしました。
保存は非常にうまく機能しますが、オブジェクトを復元しようとすると、オブジェクトが空になります:
$VAR1 = bless({}, 'Note');
$VAR2 = bless({}, '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);
誰かが助けてくれることを願っています:)