J'essaie de récupérer la liste des valeurs :
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
| # lire tous les elements selectionner dans la boite de liste 1
my @enz_select;
my $bouton1vers2 = $main->Button(
-text => '>>',
-command => sub {
# lire element selectionner dans la boite de liste 1
my @elt_selectionnes = $liste1->curselection();
# ajout des éléments dans @enz_select
map { push @enz_select, $liste1->get($_) } @elt_selectionnes;
foreach my $elt1 (@elt_selectionnes) {
# Déplacement dans la liste 2
$liste2->insert( 'end', $liste1->get($elt1) );
# suppression de la liste 1
$liste1->delete($elt1);
}
},
);
my $bouton2vers1 = $main->Button(
-text => '<<',
-command => sub {
# lire element selectionner dans la boite de liste 1
my @elt_selectionnes = $liste2->curselection();
foreach my $elt2 (@elt_selectionnes) {
# Déplacement dans la liste 1
$liste1->insert( 'end', $liste2->get($elt2) );
# suppression de la liste 2
$liste2->delete($elt2);
# suppression des éléments dans @enz_select
delete $enz_select[%i] , firstidx { $_ eq $liste2->get($elt2) } @enz_select;
}
},
); |
Il y a un problème avec
delete $enz_select[%i] , firstidx { $_ eq $liste2->get($elt2) } @enz_select;
car %i n'est pas défini. On trouve pourtant sur le CPAN :
firstidx BLOCK LIST
first_index BLOCK LIST
Returns the index of the first element in LIST for which the criterion in BLOCK is true. Sets $_ for each item in LIST in turn:
my @list = (1, 4, 3, 2, 4, 6);
printf "item with index %i in list is 4", firstidx { $_ == 4 } @list;
__END__
item with index 1 in list is 4
Quelle variable contient l'index récupéré? Merci.
Partager