ActivePerl types de variables et Basics contexte de ActivePerl - Partie 11 Introduction Cela fait partie de ma série 11, Bases de ActivePerl. Dans cette partie de la série, nous regardons ce que l'on appelle les types de données ActivePerl et ce qui est aussi appelé le contexte de scalaire et le contexte de liste. Remarque: Si vous ne pouvez pas voir le code ou si vous pensez que quelque chose manquait (lien brisé, l'image absente), contactez-moi au [email protected]. Qui est, me contacter pour le moindre problème que vous avez à propos de ce que vous lisez.
Les types de données Perl dispose de trois types de données intégrées, qui sont appelés les scalaires, les tableaux et hachages. Signification d'un scalaire En termes simples, un scalaire est une chaîne ou un nombre. Toute variable qui identifie un scalaire commence avec $. Un scalaire est ce que nous nous référons comme une valeur simple. Exemple, mon $ var; $ var = "du texte ou un nombre sans guillemets"; Nous avons vu de nombreux exemples de scalaire. Signification de l'Array Un tableau est une liste ordonnée de scalaires. Nous avons vu des exemples de cela.
Toute variable qui identifie un tableau doit commencer par @. Signification de hachage Un hachage est une liste non ordonnée de scalaires. Une différence principale entre un hachage et un tableau est que les valeurs de la table de hachage sont indexés par les touches de chaîne associée, tandis que les valeurs d'un tableau sont indexés par des numéros. Toute variable qui identifie un hachage commence avec%. Nous avons vu des exemples de tables de hachage. Valable variable Nom De ce qui précède, nous voyons que d'une variable commence soit, $, @ ou%.
Après cela, vous devriez avoir une lettre ou un soulignement. Après cela, vous pouvez avoir un nombre quelconque de caractères de soulignement, de lettres ou de chiffres dans un ordre quelconque, pour former le nom de la variable. La liste A, liste est une collection de scalaires séparées par des virgules, délimités par des parenthèses. Un exemple est: ("le premier", "deuxième", 3) Il ya trois scalaires là: deux cordes et un numéro. Vous pouvez avoir les listes des deux côtés de l'opérateur d'affectation.
Considérez la ligne suivante: (un my $, mes deux $, mes trois $) = ("le premier", "deuxième", 3); Il existe deux listes: l'une ici sur la gauche de l'opérateur d'affectation et l'autre sur la droite de l'opérateur d'affectation. Je intentionnellement mis les deux listes d'avoir trois scalaires chacun. La liste de droite a scalaires réels. L'un sur la gauche a mais les variables. Chacune des variables de la liste sur la gauche, tiendra le scalaire correspondante de la liste sur la droite. Je l'espère, vous êtes en appréciant le sens de liste dans ActivePerl.
Lire et essayer le code suivant: use strict; print "Content-Type: text /html \\ n \\ n"; (une my $, mes deux $, mes trois $) = ("le premier", "deuxième", 3); imprimer un $; print "impression recto $; print" print trois $; print "Vous devriez avoir les trois valeurs scalaires affichés Une liste peut être affecté à une autre liste avec les variables correspondantes comme indiqué ci-dessus Cependant, une liste peut également être attribué à un tableau, comme indiqué dans le code suivant (lire et essayer)..
: use strict; print "Content-Type: text /html \\ n \\ n"; monarr = ("le premier", "deuxième", 3); impressionarr; Cette méthode d'attribution d'une liste est préférable, lorsque vous ne savez pas le nombre d'éléments dans la liste, ou lorsque la liste est très longue arguments à une fonction, nous avons vu la fonction d'impression Dans le premier exemple de code ci-dessus, nous avons imprimer une $;.. Il peut aussi être "print (un $); "mais les parenthèses sont généralement omis dans un des chapitres précédents, nous avons vu quelque chose comme: push (hisArr, (.
" xxx "," yyy "," zzz ")); La est la fonction Push pour le tableau. Il a aussi crochets. Les crochets ont des éléments à l'intérieur. Ici, je l'ai mentionné les fonctions d'impression et de pousser. Tous ce que vous avez à l'intérieur des parenthèses d'une fonction que dans les deux cas ci-dessus, sont appelées arguments. Dans le cas de l'impression ci-dessus, l'argument est un $, ce qui est un scalaire. Dans le cas de la poussée des arguments sonthisArr et ("xxx", "yyy", "zzz"). Ces deux arguments sont des listes. Un tableau est une liste ordonnée, et qui est le premier argument.
Le second argument est une liste littérale. Les supports ultrapériphériques pour les arguments d'une fonction peuvent être omises. Contexte scalaire Si une opération reviendrait un scalaire ou aurait un scalaire comme argument, nous disons ActivePerl travaille dans un contexte scalaire à ce point. Prenons l'exemple suivant: my $ var = "la chaîne"; Ceci est une déclaration très simple et il est un contexte scalaire, que nous avons affaire à des scalaires de chaque côté de l'opérateur d'affectation. Considérer ce qui suit.
print (un $); L'argument de la fonction d'impression est un scalaire, ce qui est un contexte scalaire. Liste Contexte Si une opération reviendrait d'une liste ou aurait une liste comme argument, nous disons ActivePerl travaille dans un contexte de liste à ce moment. Prenons l'exemple suivant: (un my $, mes deux $, mes trois $) = ("le premier", "deuxième", 3); De chaque côté de l'opérateur d'affectation, nous avons une liste, donc nous avons un contexte de liste.
Considérez ce qui suit: push (hisArr, ("xxx", "yyy", "zzz")); Les deux arguments de la fonction de poussée sont des listes, donc nous avons un contexte de liste. Dans certains cas, les arguments d'une des fonctions peuvent être constitués de scalaires et de la liste. Dans ce cas ActivePerl travaille sur les deux contextes. Remarque: Le hachage est une sorte de liste. Contexte conditionnelle Selon l'état, vous pouvez travailler dans un contexte scalaire ou de liste. Comme vous apprendre activeperl, on vous dit ces conditions. Je vais vous donner quelques exemples ici.
Considérons le tableau suivant: monarr = ("HBWE", "FGTR", "HTNK", 4587, 4526, 4053, "AB12", "GB58», «TG45", "RE69"); Une fois la matrice a été créée, sa variable tableau se comporterait comme une opération et reviendrait soit la longueur (scalaire) du réseau ou une liste des éléments de la matrice, selon qu'il est affecté à un scalaire ou un tableau ( liste). Quand il retourne un scalaire, vous travaillez dans un contexte scalaire. Quand il retourne une liste, vous travaillez dans un contexte de liste.
Dans le code suivant la variable tableau est affecté à un scalaire, il retourne la longueur du tableau (voilà comment ActivePerl a été fait pour être - retour par un scalaire variable tableau lorsqu'ils sont affectés à un scalaire). Lire et essayez le code. use strict; print "Content-Type: text /html \\ n \\ n"; monarr = ("HBWE", "FGTR", "HTNK", 4587, 4526, 4053, "AB12", "GB58», «TG45", "RE69"); my $ scale =arr; print $ scale; Dans le code suivant la variable tableau est affecté à une liste, il renvoie la liste des éléments dans le tableau (voilà comment ActivePerl a été fait pour être).
Lire et essayez le code. use strict; print "Content-Type: text /html \\ n \\ n"; monarr = ("HBWE", "FGTR", "HTNK", 4587, 4526, 4053, "AB12", "GB58», «TG45", "RE69"); monli =arr; imprimerli; Le hachage clés et valeurs fonctions revisités Dans la spécification Perl ou ActivePerl, il est dit que la fonction de clés de hachage renvoie une liste de toutes les clés dans le hachage si vous travaillez dans le contexte de liste ou qu'il reviendrait le nombre de touches dans le hachage si vous travaillez dans un contexte scalaire.
Ainsi, dans un contexte de liste, il retourne une liste; dans un contexte scalaire renvoie un scalaire (nombre). Cela signifie que si vous assignez la valeur de retour de la fonction à un tableau, vous avez une liste; si vous affectez à un scalaire vous avez un scalaire. Lire et essayer le code suivant où la fonction des touches est dans un contexte de liste, retournant une liste parce que la valeur retournée est affecté à un tableau.
use strict; print "Content-Type: text /html \\ n \\ n"; mon% fruitColor = (Apple => "violet", Banana => "jaune", Poire => "vert", citron => "vert"); mesar = touches (% fruitColor); imprimerar; Lire et essayer le code suivant où la fonction des touches est dans un contexte scalaire, retournant un scalaire, car la valeur retournée est affecté à un scalaire.
use strict; print "Content-Type: text /html \\ n \\ n"; mon% fruitColor = (Apple => "violet", Banana => "jaune", Poire => "vert", citron =>