bonjour,
je découvre perl et je me pose des questions sur les listes.
je cherche à stocker une liste dans une variable et l'exploiter plus
tard mais j'ai un soucis :-(
my $ch1 = "azer";
my $ch2 = "ty";
my $tab = ($ch1, $ch2);
#
# some stuff
#
my $ch3;
my $ch4;
($ch3, $ch4) = $tab;
printf "%s %s\n", $ch3, $ch4;
je découvre perl et je me pose des questions sur les listes. je cherche à stocker une liste dans une variable et l'exploiter plus tard mais j'ai un soucis :-(
my $ch1 = "azer"; my $ch2 = "ty";
my $tab = ($ch1, $ch2);
# # some stuff # my $ch3; my $ch4; ($ch3, $ch4) = $tab; printf "%s %sn", $ch3, $ch4;
$ - c'est pour une variable scalaire (une seule valeur qui peut éventuellement être une référence à quelque chose d'autre).
@ - c'est pour les tableaux.
Donc, soit vous utilisez directement un tableau :
my @tab = ($ch1, $ch2); my ($ch3, $ch4) = @tab;
soit vous utilisez une référence (ici à un tableau) :
my $tab = [$ch1, $ch2]; my ($ch3, $ch4) = @{$tab};
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
je découvre perl et je me pose des questions sur les listes.
je cherche à stocker une liste dans une variable et l'exploiter plus
tard mais j'ai un soucis :-(
my $ch1 = "azer";
my $ch2 = "ty";
my $tab = ($ch1, $ch2);
#
# some stuff
#
my $ch3;
my $ch4;
($ch3, $ch4) = $tab;
printf "%s %sn", $ch3, $ch4;
$ - c'est pour une variable scalaire (une seule valeur qui peut
éventuellement être une référence à quelque chose d'autre).
@ - c'est pour les tableaux.
Donc, soit vous utilisez directement un tableau :
my @tab = ($ch1, $ch2);
my ($ch3, $ch4) = @tab;
soit vous utilisez une référence (ici à un tableau) :
my $tab = [$ch1, $ch2];
my ($ch3, $ch4) = @{$tab};
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
je découvre perl et je me pose des questions sur les listes. je cherche à stocker une liste dans une variable et l'exploiter plus tard mais j'ai un soucis :-(
my $ch1 = "azer"; my $ch2 = "ty";
my $tab = ($ch1, $ch2);
# # some stuff # my $ch3; my $ch4; ($ch3, $ch4) = $tab; printf "%s %sn", $ch3, $ch4;
$ - c'est pour une variable scalaire (une seule valeur qui peut éventuellement être une référence à quelque chose d'autre).
@ - c'est pour les tableaux.
Donc, soit vous utilisez directement un tableau :
my @tab = ($ch1, $ch2); my ($ch3, $ch4) = @tab;
soit vous utilisez une référence (ici à un tableau) :
my $tab = [$ch1, $ch2]; my ($ch3, $ch4) = @{$tab};
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
je découvre perl et je me pose des questions sur les listes. je cherche à stocker une liste dans une variable et l'exploiter plus tard mais j'ai un soucis :-(
my $ch1 = "azer"; my $ch2 = "ty";
my $tab = ($ch1, $ch2);
# # some stuff # my $ch3; my $ch4; ($ch3, $ch4) = $tab; printf "%s %sn", $ch3, $ch4;
$ - c'est pour une variable scalaire (une seule valeur qui peut éventuellement être une référence à quelque chose d'autre).
@ - c'est pour les tableaux.
Donc, soit vous utilisez directement un tableau :
my @tab = ($ch1, $ch2); my ($ch3, $ch4) = @tab;
soit vous utilisez une référence (ici à un tableau) :
my $tab = [$ch1, $ch2]; my ($ch3, $ch4) = @{$tab};
merci de cette réponse. j'avais un peu trop simplifié mon exemple car en fait, je voulais mettre mon résultat dans un tableau:
use vars qw(@tab); my $ch1 = "azer"; my $ch2 = "ty"; my $idx = 0;
@tab[$idx] = ($ch1, $ch2);
# # some stuff # my $ch3; my $ch4; ($ch3, $ch4) = @tab[$idx]; printf "%s %sn", $ch3, $ch4;
je découvre perl et je me pose des questions sur les listes.
je cherche à stocker une liste dans une variable et l'exploiter plus
tard mais j'ai un soucis :-(
my $ch1 = "azer";
my $ch2 = "ty";
my $tab = ($ch1, $ch2);
#
# some stuff
#
my $ch3;
my $ch4;
($ch3, $ch4) = $tab;
printf "%s %sn", $ch3, $ch4;
$ - c'est pour une variable scalaire (une seule valeur qui peut
éventuellement être une référence à quelque chose d'autre).
@ - c'est pour les tableaux.
Donc, soit vous utilisez directement un tableau :
my @tab = ($ch1, $ch2);
my ($ch3, $ch4) = @tab;
soit vous utilisez une référence (ici à un tableau) :
my $tab = [$ch1, $ch2];
my ($ch3, $ch4) = @{$tab};
merci de cette réponse.
j'avais un peu trop simplifié mon exemple car en fait, je voulais mettre
mon résultat dans un tableau:
use vars qw(@tab);
my $ch1 = "azer";
my $ch2 = "ty";
my $idx = 0;
@tab[$idx] = ($ch1, $ch2);
#
# some stuff
#
my $ch3;
my $ch4;
($ch3, $ch4) = @tab[$idx];
printf "%s %sn", $ch3, $ch4;
je découvre perl et je me pose des questions sur les listes. je cherche à stocker une liste dans une variable et l'exploiter plus tard mais j'ai un soucis :-(
my $ch1 = "azer"; my $ch2 = "ty";
my $tab = ($ch1, $ch2);
# # some stuff # my $ch3; my $ch4; ($ch3, $ch4) = $tab; printf "%s %sn", $ch3, $ch4;
$ - c'est pour une variable scalaire (une seule valeur qui peut éventuellement être une référence à quelque chose d'autre).
@ - c'est pour les tableaux.
Donc, soit vous utilisez directement un tableau :
my @tab = ($ch1, $ch2); my ($ch3, $ch4) = @tab;
soit vous utilisez une référence (ici à un tableau) :
my $tab = [$ch1, $ch2]; my ($ch3, $ch4) = @{$tab};
merci de cette réponse. j'avais un peu trop simplifié mon exemple car en fait, je voulais mettre mon résultat dans un tableau:
use vars qw(@tab); my $ch1 = "azer"; my $ch2 = "ty"; my $idx = 0;
@tab[$idx] = ($ch1, $ch2);
# # some stuff # my $ch3; my $ch4; ($ch3, $ch4) = @tab[$idx]; printf "%s %sn", $ch3, $ch4;
j'avais un peu trop simplifié mon exemple car en fait, je voulais mettre mon résultat dans un tableau:
use vars qw(@tab); my $ch1 = "azer"; my $ch2 = "ty"; my $idx = 0;
@tab[$idx] = ($ch1, $ch2); # # some stuff # my $ch3; my $ch4; ($ch3, $ch4) = @tab[$idx]; printf "%s %sn", $ch3, $ch4;
@tab[$idx] signifie la liste d'éléments (à cause du @) pris dans le tableau 'tab' (à cause du tab[...]) et identifiés par les indices fournis entre les crochets. Ici, vous ne donnez qu'un seul indice. Donc cette liste d'éléments ne contient qu'un seul élément ($tab[$idx]).
Vous pourriez utiliser deux éléments de votre tableau @tab :
Mais je ne suis pas sûr que c'est ce que vous cherchez à faire.
Vous pouvez aussi utiliser l'élement $idx de votre tableau @tab pour stocker une référence à un tableau de valeur (le tableau référéncé sera un tableau anonyme).
On peut alors faire :
$tab[$idx] = [$ch1, $ch2]; # les crochets servent à créer une # référence à un tableau anonyme my ($ch3, $ch4) = @{$tab[$idx]}; # @{...} permet de déréférencer...
Ou alors :
@{$tab[$idx]} = ($ch1, $ch2); my ($ch3, $ch4) = @{$tab[$idx]};
De manière générale, il faut retenir qu'on utilise '$' pour parler d'une seule valeur scalaire et '@' pour parler d'une liste de valeurs.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
j'avais un peu trop simplifié mon exemple car en fait, je voulais
mettre mon résultat dans un tableau:
use vars qw(@tab);
my $ch1 = "azer";
my $ch2 = "ty";
my $idx = 0;
@tab[$idx] = ($ch1, $ch2);
#
# some stuff
#
my $ch3;
my $ch4;
($ch3, $ch4) = @tab[$idx];
printf "%s %sn", $ch3, $ch4;
@tab[$idx] signifie la liste d'éléments (à cause du @) pris dans le
tableau 'tab' (à cause du tab[...]) et identifiés par les indices
fournis entre les crochets. Ici, vous ne donnez qu'un seul
indice. Donc cette liste d'éléments ne contient qu'un seul élément
($tab[$idx]).
Vous pourriez utiliser deux éléments de votre tableau @tab :
Mais je ne suis pas sûr que c'est ce que vous cherchez à faire.
Vous pouvez aussi utiliser l'élement $idx de votre tableau @tab pour
stocker une référence à un tableau de valeur (le tableau référéncé
sera un tableau anonyme).
On peut alors faire :
$tab[$idx] = [$ch1, $ch2]; # les crochets servent à créer une
# référence à un tableau anonyme
my ($ch3, $ch4) = @{$tab[$idx]}; # @{...} permet de déréférencer...
Ou alors :
@{$tab[$idx]} = ($ch1, $ch2);
my ($ch3, $ch4) = @{$tab[$idx]};
De manière générale, il faut retenir qu'on utilise '$' pour parler
d'une seule valeur scalaire et '@' pour parler d'une liste de valeurs.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
j'avais un peu trop simplifié mon exemple car en fait, je voulais mettre mon résultat dans un tableau:
use vars qw(@tab); my $ch1 = "azer"; my $ch2 = "ty"; my $idx = 0;
@tab[$idx] = ($ch1, $ch2); # # some stuff # my $ch3; my $ch4; ($ch3, $ch4) = @tab[$idx]; printf "%s %sn", $ch3, $ch4;
@tab[$idx] signifie la liste d'éléments (à cause du @) pris dans le tableau 'tab' (à cause du tab[...]) et identifiés par les indices fournis entre les crochets. Ici, vous ne donnez qu'un seul indice. Donc cette liste d'éléments ne contient qu'un seul élément ($tab[$idx]).
Vous pourriez utiliser deux éléments de votre tableau @tab :
Mais je ne suis pas sûr que c'est ce que vous cherchez à faire.
Vous pouvez aussi utiliser l'élement $idx de votre tableau @tab pour stocker une référence à un tableau de valeur (le tableau référéncé sera un tableau anonyme).
On peut alors faire :
$tab[$idx] = [$ch1, $ch2]; # les crochets servent à créer une # référence à un tableau anonyme my ($ch3, $ch4) = @{$tab[$idx]}; # @{...} permet de déréférencer...
Ou alors :
@{$tab[$idx]} = ($ch1, $ch2); my ($ch3, $ch4) = @{$tab[$idx]};
De manière générale, il faut retenir qu'on utilise '$' pour parler d'une seule valeur scalaire et '@' pour parler d'une liste de valeurs.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Julien Favre
On peut alors faire :
$tab[$idx] = [$ch1, $ch2]; # les crochets servent à créer une # référence à un tableau anonyme my ($ch3, $ch4) = @{$tab[$idx]}; # @{...} permet de déréférencer...
exactement. ça marche parfaitement :-) merci beaucoup,
On peut alors faire :
$tab[$idx] = [$ch1, $ch2]; # les crochets servent à créer une
# référence à un tableau anonyme
my ($ch3, $ch4) = @{$tab[$idx]}; # @{...} permet de déréférencer...
exactement. ça marche parfaitement :-)
merci beaucoup,
$tab[$idx] = [$ch1, $ch2]; # les crochets servent à créer une # référence à un tableau anonyme my ($ch3, $ch4) = @{$tab[$idx]}; # @{...} permet de déréférencer...
exactement. ça marche parfaitement :-) merci beaucoup,