#!/usr/bin/perl
use warnings;
use strict;
{
package Myproject::Model::Table;
use Moo;
has name => (is => 'ro');
has model => (is => 'ro');
}
{
package Myproject::Model;
use Moo;
has table => (is => 'rw');
sub newtable {
my ($self, $name) = @_;
my $tob = 'Myproject::Model::Table'->new(
name => $name,
model => $self,
);
$self->table or $self->table({});
$self->table->{$name} = $tob;
}
sub DESTROY { print "Good bye\n"; }
}
my $model = 'Myproject::Model'->new;
$model->newtable('t1');
undef $model; # No destructor called here.
use Data::Dumper;
print Dumper $model;
####
has model => (is => 'ro', weak_ref => 1);
####
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord
}map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,