Introdução ao ActivePerl variáveis especiais Noções básicas de ActivePerl - Parte 14 Introdução Esta é parte de minha série 14, Noções básicas de ActivePerl. Nesta parte da série, nós olhamos o que é chamado de ActivePerl variáveis especiais. Estas são variáveis que já tenham sido declaradas no Interpreter para você. Você não precisa declará-los novamente. Sob certas condições, as variáveis adquirir certos valores. Como você aprender Perl, você aprende os nomes dessas variáveis, os valores que adquirem e as condições em que adquirem os valores.
Qualquer destas variáveis caem em uma das três tipos de dados. Então, qualquer uma dessas variáveis é um escalar ou uma matriz ou um hash. Nota: Se você não pode ver o código ou se você acha que alguma coisa está faltando (link quebrado, imagem ausente), apenas contacte-me em [email protected]. Ou seja, contacte-me para o menor problema que você tem sobre o que você está lendo. Dois exemplos Nesta parte da série, nós olhamos para duas das variáveis, que são $ _ e_. O primeiro é um escalar; o mais tarde é uma matriz. A tarde foi mencionado em um dos capítulos anteriores.
O nome do primeiro é _. É precedido por $ uma vez que é um escalar, em nome da variável. O nome da posterior é também _. É precedido por @ uma vez que é uma matriz. Existem muitas dessas variáveis já declarados para você no interpretador ActivePerl. A maneira como você irá declarar a sua própria variável, é apenas a começar com a palavra reservada, meu, então um espaço, seguido por $, @ ou% e lhes o nome da variável, em seguida, um ponto e vírgula para fazer uma declaração.
Depois disso como você escreve seu código a variável irá adquirir valor (ou valores), dependendo do código que você escreve. Estas variáveis especiais se comportam de forma semelhante, com a diferença de que eles já tenham sido declarados para você no interpretador. Além disso, as condições em que eles vão adquirir certos valores já foram determinadas no interpretador. Os valores particulares que adquirem depender da condição. Você aprende as condições e os valores adquiridos como você aprende ActivePerl.
Nesta parte da série, aprendemos as condições e valores adquiridos por US $ _ e_, no nível básico. Os nomes dessas variáveis especiais são como sinais de pontuação. Alguns deles são, na verdade, sinais de pontuação, como com $ ?. Não se preocupe com $? para agora. Em geral, os nomes dessas variáveis não são susceptíveis os nomes que você daria a seu próprio usuário declarado variáveis. Você normalmente daria um nome para uma variável que você pode se lembrar, como embooks, onde você quer livros para significar uma série de livros.
Assim, dificilmente haveria conflitos entre suas variáveis e estas variáveis especiais. A variável $ _ A sintaxe para a construção foreach é, foreach Vairable (List) {} Se algo #do Variável (que é um escalar) na sintaxe não for digitado, em seguida, $ _ tomaria seu lugar. Você pode então usar $ _ dentro do bloco como você usaria, Variable. Considere o seguinte fragmento de código: foreach my $ item (theArr) {print $ item, "} Se você não digitar a variável $ item, em seguida, a variável especial, $ _ tomaria o lugar da variável $ item The bloco.
do código teria de ser escrita como, foreach (theArr) {print $ _ "} $ item não foi digitado na primeira linha da construção, por isso, dentro do bloco, $ _ foi utilizado em seu lugar. Leia e tente o seguinte código: use strict; print "Content-Type: text /html \\ n \\ n"; minhatheArr = ("HBWE", "FGTR", "HTNK", 4587, 4526, 4053, "AB12", "GB58", "TG45", "RE69"); foreach (theArr) {print $ _ "} Espero que agora você aprecia a condição e os valores da maneira $ _ se comportou. Existem outras situações em ActivePerl onde $ _ é utilizado. As situações são semelhantes ao que acabamos de descrever .
O_ variável Quando você chamar uma sub-rotina (função) com argumentos, quando a função está sendo executado, todos os argumentos serão membros da variável especial,_. Assim, dentro de uma sub-rotina o array_ contém os argumentos passados para que sub-rotina. Esta variável de matriz já foi pré-declarado no interpretador. Você não tem que declará-la novamente. Sempre que uma sub-rotina é chamada, os valores desta matriz tornam-se os valores dos argumentos passados para a sub-rotina. A matriz .
_ é preenchido, a partir do primeiro índice
(0) Se a sub-rotina é chamada sem argumentos, então a matriz estará vazia Leia e tente o seguinte código:. use strict; print "Content-Type: text /html \\ n \\ n "; sub mySub {print $ _ [0],"} mySub ("um", "dois", "três"); A sub-rotina é chamada com três argumentos ("um", "dois", "três"). Quando a sub-rotina é executada, o valor do primeiro elemento de_ é o valor do primeiro argumento, o valor do segundo elemento é o valor do segundo argumento, e a do terceiro elemento é o valor do terceiro argumento .
Nota: Uma vez que o nome da matriz,_, é _, os elementos do array, é de US $ _ [0], $ _ [1], $ _ [2], etc. Passando listas como argumentos para sub-rotinas A questão você pode ter é a seguinte: o que acontece se o argumento passado é um array ou um hash. Se o argumento é um array ou um hash, na função de entrar em colapso (torna-se bemol) perder a sua identidade e os seus itens se tornam valores do_ matriz. Vamos demonstrar isso com um experimento.
Leia e tente o seguinte código: use strict; print "Content-Type: text /html \\ n \\ n"; my $ scal = "um"; meuarr = ("dois", "três"); my% hsh = (DDD => "quatro", EEE =>