bonjour, j'espère que ça va.
je me suis encore perdu dans les références
voilà une classe moose que j'essaie de construire.
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 48 49 50
| package Memoire_date;
#moose/Memoire_date.pm
use Moose;
use Data::Dumper;
##############################################################
has 'tab_temps' => (
isa => 'ArrayRef',
is => 'rw',
#lazy => 1,
#default => 'inconnu'
default => sub { return []; }
);
##############################################################
##############################################################
has 'tab_new' => (
isa => 'ArrayRef',
is => 'rw',
#lazy => 1,
#default => 'inconnu'
default => sub { return []; }
);
##############################################################
sub set_date {
my $self = shift;
#my $date = shift;
my $date = 'date';
my @tab = $self->tab_temps;
my $longtab = @{$tab[0]};
my @new_tab = $self->tab_new;
my $longtabnew = @{$new_tab[0]};
#si tabnew deja rempli je le pousse dans tab temps
if ($longtabnew > 0) {
# body...
my @temp = ${self}->tab_new;
push ${self}->tab_temps, [@temp];
print "ici tob", Dumper(${self}->tab_temps);
#je réinitialise
print 'long tab ', $longtabnew;
$self->tab_new([]);
}
#j'inscrit la date
$self->tab_new->[0]->[0]= $date;
print "\n new est ", $self->tab_new->[0]->[0];
#print "\n new est ",${self}->tab_temps->[0]->[0]->[0]->[0];
}
##############################################################
no Moose;
__PACKAGE__->meta->make_immutable; |
ce qui me donne
ici tob$VAR1 = [
[
[
[
'date'
]
]
],
[
[
[
'date'
]
]
],
[
[
[
'date'
]
]
],
etc .. dejà ça fait beaucoup de crochets
mais ensuite si j'essaye d'acceder à mes valeurs en faisant je l'avoue n'importe quoi comme par exemple
print "\n resultat est ",${self}->tab_temps->[0]->[0]->[0]->[0];
non seulement je n'y arrive pas mais en plus de nouveaux tableaux se créent tous seul par autovivification.
comme ça
ici tob$VAR1 = [
[
[
[]
]
],
[
[
[
'date'
]
]
],
[
[
[
'date'
]
]
],
[
[
[
'date'
]
]
],
Si vous voyez le problème ?
Partager