Je d=E9sire d=E9r=E9f=E9rencer un tableau stock=E9 dans un =E9l=E9ment de
table de hashage... J'arrive bien =E0 acc=E9der =E0 mon premier =E9l=E9ment
mais j'aimerai obtenir la liste.
#!/usr/bin/perl -w
use strict;
# Table de hashage de tous les artistes
my %hArtiste;
my @liste1 =3D ("coucou");
$hArtiste{'CLE'}=3D\@liste1;
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas George
"Le Souricier Gris" wrote in message :
print @$hArtiste{'CLE'}."n";
Cette ligne est ambiguë : veut-elle dire qu'on prend {OLE} dans @$hArtiste (ce qui ne veut rien dire), ou qu'on prend le tableau (@) dans $hArtiste{OLE} ? Pour lever l'ambiguïté, il faut grouper, ce qui se fait avec des accolades.
"Le Souricier Gris" wrote in message
<1152005386.738239.241250@v61g2000cwv.googlegroups.com>:
print @$hArtiste{'CLE'}."n";
Cette ligne est ambiguë : veut-elle dire qu'on prend {OLE} dans @$hArtiste
(ce qui ne veut rien dire), ou qu'on prend le tableau (@) dans
$hArtiste{OLE} ? Pour lever l'ambiguïté, il faut grouper, ce qui se fait
avec des accolades.
Cette ligne est ambiguë : veut-elle dire qu'on prend {OLE} dans @$hArtiste (ce qui ne veut rien dire), ou qu'on prend le tableau (@) dans $hArtiste{OLE} ? Pour lever l'ambiguïté, il faut grouper, ce qui se fait avec des accolades.
Le Souricier Gris
Nicolas George wrote:
"Le Souricier Gris" wrote in message :
print @$hArtiste{'CLE'}."n";
Cette ligne est ambiguë : veut-elle dire qu'on prend {OLE} dans @$hArti ste (ce qui ne veut rien dire), ou qu'on prend le tableau (@) dans $hArtiste{OLE} ? Pour lever l'ambiguïté, il faut grouper, ce qui se f ait avec des accolades.
J'avais testé cette solution mais en fait elle me renvoyait 1, c'était sans penser à une seconde erreur qui était les " " autour de @...
#!/usr/bin/perl -w
use strict;
# Table de hashage de tous les artistes my %hArtiste; my @liste1 = ("coucou"); $hArtiste{'CLE'}=@liste1;
print $hArtiste{'CLE'}[0]."n";
print "@{$hArtiste{'CLE'}}"."n";
Merci Bien
Nicolas George wrote:
"Le Souricier Gris" wrote in message
<1152005386.738239.241250@v61g2000cwv.googlegroups.com>:
print @$hArtiste{'CLE'}."n";
Cette ligne est ambiguë : veut-elle dire qu'on prend {OLE} dans @$hArti ste
(ce qui ne veut rien dire), ou qu'on prend le tableau (@) dans
$hArtiste{OLE} ? Pour lever l'ambiguïté, il faut grouper, ce qui se f ait
avec des accolades.
J'avais testé cette solution mais en fait elle me renvoyait 1,
c'était sans penser à une seconde erreur qui était les " " autour de
@...
#!/usr/bin/perl -w
use strict;
# Table de hashage de tous les artistes
my %hArtiste;
my @liste1 = ("coucou");
$hArtiste{'CLE'}=@liste1;
Cette ligne est ambiguë : veut-elle dire qu'on prend {OLE} dans @$hArti ste (ce qui ne veut rien dire), ou qu'on prend le tableau (@) dans $hArtiste{OLE} ? Pour lever l'ambiguïté, il faut grouper, ce qui se f ait avec des accolades.
J'avais testé cette solution mais en fait elle me renvoyait 1, c'était sans penser à une seconde erreur qui était les " " autour de @...
#!/usr/bin/perl -w
use strict;
# Table de hashage de tous les artistes my %hArtiste; my @liste1 = ("coucou"); $hArtiste{'CLE'}=@liste1;
print $hArtiste{'CLE'}[0]."n";
print "@{$hArtiste{'CLE'}}"."n";
Merci Bien
Paul Gaborit
À (at) 4 Jul 2006 03:21:05 -0700, "Le Souricier Gris" écrivait (wrote):
J'avais testé cette solution mais en fait elle me renvoyait 1, c'était sans penser à une seconde erreur qui était les " " autour de @...
Ce n'est pas les guillemets qui changent les choses, c'est l'opérateur '.' qui induit un contexte scalaire. Si vous utilisez l'opérateur ',' à la place, vous n'avez plus ce contexte scalaire.
#!/usr/bin/perl -w
use strict;
# Table de hashage de tous les artistes my %hArtiste; my @liste1 = ("coucou");
# avec une liste à plusieurs éléments on voit mieux ce qui se passe
Là, on comprend mieux la différence entre '.' et ','... on voit aussi l'usage (implicite) de la variable $" (par défaut un espace qui sépare les éléments d'un tableau interpolé dans une chaîne de caractères).
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) 4 Jul 2006 03:21:05 -0700,
"Le Souricier Gris" <lesouriciergris@free.fr> écrivait (wrote):
J'avais testé cette solution mais en fait elle me renvoyait 1,
c'était sans penser à une seconde erreur qui était les " " autour de
@...
Ce n'est pas les guillemets qui changent les choses, c'est l'opérateur
'.' qui induit un contexte scalaire. Si vous utilisez l'opérateur ','
à la place, vous n'avez plus ce contexte scalaire.
#!/usr/bin/perl -w
use strict;
# Table de hashage de tous les artistes
my %hArtiste;
my @liste1 = ("coucou");
# avec une liste à plusieurs éléments on voit mieux ce qui se passe
Là, on comprend mieux la différence entre '.' et ','... on voit aussi
l'usage (implicite) de la variable $" (par défaut un espace qui sépare
les éléments d'un tableau interpolé dans une chaîne de caractères).
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) 4 Jul 2006 03:21:05 -0700, "Le Souricier Gris" écrivait (wrote):
J'avais testé cette solution mais en fait elle me renvoyait 1, c'était sans penser à une seconde erreur qui était les " " autour de @...
Ce n'est pas les guillemets qui changent les choses, c'est l'opérateur '.' qui induit un contexte scalaire. Si vous utilisez l'opérateur ',' à la place, vous n'avez plus ce contexte scalaire.
#!/usr/bin/perl -w
use strict;
# Table de hashage de tous les artistes my %hArtiste; my @liste1 = ("coucou");
# avec une liste à plusieurs éléments on voit mieux ce qui se passe
Là, on comprend mieux la différence entre '.' et ','... on voit aussi l'usage (implicite) de la variable $" (par défaut un espace qui sépare les éléments d'un tableau interpolé dans une chaîne de caractères).
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>