diffences entre ces 2 tableaux - Perl - Programmation
Marsh Posté le 29-03-2007 à 16:30:54
j'imagine qu'il manque les égales à tes deux ecritures...
La première crée un tableau d'un seul élément, cet élément étant une référence sur un tableau anonyme de deux éléments "chaine1" et "chaine2"
La deuxime crée un tableau de deux éléments "chaine1" et "chaine2".
Donc oui y'a une grosse différence
Marsh Posté le 29-03-2007 à 16:40:28
Merci
Effectivement j'ai oublié les =
Dans le premier cas finalement on a un amour de pointeur
Marsh Posté le 29-03-2007 à 16:48:43
Une référence
Je cite "Advanced Perl Programming":
Citation : Perl [...] allows you to create anonymous data structures, and supports a fundamental data type called a "reference," loosely equivalent to a C pointer. Just as C pointers can point to data as well as procedures, Perl's references can refer to conventional data types (scalars, arrays, and hashes) and other entities such as subroutines, typeglobs, and filehandles. Unlike C, they don't let you peek and poke at raw memory locations. |
Marsh Posté le 29-03-2007 à 16:58:41
Anonyme me fait un peur
Dans le cas de mon tableau:
@tableau=["chaine1", "chaine2"];
Est il possible d'ajouter des éléments à mon tableau référencé.
Merci
Marsh Posté le 29-03-2007 à 17:08:00
tu es bien d'accord que la tableau référencé donc tu parles il est dans $tableau[0] ???
Donc en fait pour accèder à chaine2 tu dois faire $$tableau[0][1] ( ou $tableau[0]->[1]) ... Je comprends vraiment pas l'intérêt!!!
Par contre tu peux tout à fait pusher dans ce tableau anonyme à condition de déréférencer ton tableau lors de l'appel:
Code :
|
et ne surtout pas faire
Code :
|
Sinon tu va te retrouver avec "tableau" qui contiendra deux elements:
- le premier étant une référence sur un tableau anonyme ( contenant chaine1 et chaine2)
- le deuxieme la chaine "chaine3"
Généralement quand on veut se servir d'une référence sur un tableau on fait:
Code :
|
ce qui n'evite pas le déréférencement lorsque c'est nécessaire mais evite la problématique juste au dessus.
Enfin tout ça c'est les bases du perl un petit tour dans la doc/un bouquin ne ferait pas de mal à mon avis
Marsh Posté le 29-03-2007 à 17:53:18
Ok merci en fait mon problème est spécial et long à expliquer mais avec ca:
push @$tableau[0], "chaine 3";
Je vais m'en sortir
Merci
Marsh Posté le 29-03-2007 à 15:41:47
Bonjour,
Quelle est la différence (s'il y en a une) entre ces 2 tableaux:
et
Merci