Thread [Moose] Array von Moose Objekten in Datei speichern (4 answers)
Opened by demonking at 2013-05-26 20:25

demonking
 2013-05-26 20:25
#167831 #167831
User since
2011-05-25
13 Artikel
BenutzerIn
[default_avatar]
Hallo Community,

ich versuche mich diesmal mal an Moose nach längerer Zeit. ;)

Ich versuche gerade ein Array von Moose Objekten in einen Array zu pushen und diesen dann in eine Datei abzulegen.(Ob JSON oder YAML wäre mir erstmal egal)

Hier etwas Code :

Note.pm

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
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:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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')};

@Arr=();
while ((my $key, my $value) = each(@fin)){
        push(@Arr,Note->unpack($value));
}

say '@Arr ' . :Dumper(@Arr);


Edit: Aktueller Ausgabe von Zeile 47


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



Also leere Objekte obwohl das gar nicht sein dürfte :/

Edit2: Irgendwie liegt das an unpack in Zeile 44.
Der Inhalt von fin(Dumper) sieht so aus:

Quote
$VAR1 = {
'message' => 'firstmessage',
'__CLASS__' => 'Note',
};
$VAR2 = {
'message' => 'secondmessage',
'__CLASS__' => 'Note',
};



Gruß

Demonking
Last edited: 2013-05-30 13:27:58 +0200 (CEST)

View full thread [Moose] Array von Moose Objekten in Datei speichern