#!/usr/bin/env perl use Data::Dx; use Dios { accessors => 'unified' }; use Storable; use Test::Expr; use 5.014_00; BEGIN { # Must go before the classes are declared! $Nada::storable=1; $Yada::storable=1; } class Nada { has Int $.number is rw; }; class Yada { has Int $.number is rw; has Nada @.nadas is rw; }; # class Yada: # Yeah, I'm lazy sub Yada::test_our_yada { my $self=shift; ok $self->isa('Yada'); ok $self->number() == 0; ok @{$self->nadas()} == 2; Dx $self->nadas(); ok $self->nadas()->[0]->number() == 1; ok $self->nadas()->[1]->number() == 2; } { # The "initial" Yada my $yada=Yada->new(number=>0,nadas=>[Nada->new(number=>1),Nada->new(number=>2)]); $yada->test_our_yada(); # Serialize and write to 'Yada.dat' $yada->store('Yada.dat'); } { # Yada as restored from 'Yada.dat' my $yada=retrieve('Yada.dat'); $yada->test_our_yada(); } done_testing;