Perl - Variáveis

Variáveis ​​são os locais de memória reservados para armazenar valores. Isso significa que, ao criar uma variável, você reserva algum espaço na memória.

Com base no tipo de dado de uma variável, o interpretador aloca memória e decide o que pode ser armazenado na memória reservada. Portanto, ao atribuir diferentes tipos de dados a variáveis, você pode armazenar inteiros, decimais ou strings nessas variáveis.

Aprendemos que Perl tem os seguintes três tipos básicos de dados -

  • Scalars
  • Arrays
  • Hashes

Conseqüentemente, usaremos três tipos de variáveis ​​em Perl. UMAscalarA variável será precedida por um cifrão ($) e pode armazenar um número, uma string ou uma referência. Aarraya variável precederá o sinal @ e armazenará listas ordenadas de escalares. Finalmente, oHash a variável será precedida pelo sinal% e será usada para armazenar conjuntos de pares de chave / valor.

Perl mantém cada tipo de variável em um namespace separado. Portanto, você pode, sem medo de conflito, usar o mesmo nome para uma variável escalar, um array ou um hash. Isso significa que $ foo e @foo são duas variáveis ​​diferentes.

Criação de variáveis

As variáveis ​​Perl não precisam ser declaradas explicitamente para reservar espaço de memória. A declaração acontece automaticamente quando você atribui um valor a uma variável. O sinal de igual (=) é usado para atribuir valores às variáveis.

Observe que é obrigatório declarar uma variável antes de usá-la, se usarmos use strict declaração em nosso programa.

O operando à esquerda do operador = é o nome da variável e o operando à direita do operador = é o valor armazenado na variável. Por exemplo -

$age = 25;             # An integer assignment
$name = "John Paul";   # A string 
$salary = 1445.50;     # A floating point

Aqui, 25, "John Paul" e 1445,50 são os valores atribuídos às variáveis $ age , $ name e $ salary , respectivamente. Em breve veremos como podemos atribuir valores a arrays e hashes.

Variáveis ​​Escalares

Um escalar é uma única unidade de dados. Esses dados podem ser um número inteiro, ponto flutuante, um caractere, uma string, um parágrafo ou uma página da web inteira. Simplesmente dizer que pode ser qualquer coisa, mas apenas uma coisa.

Aqui está um exemplo simples de uso de variáveis ​​escalares -

#!/usr/bin/perl

$age = 25;             # An integer assignment
$name = "John Paul";   # A string 
$salary = 1445.50;     # A floating point

print "Age = $age\n";
print "Name = $name\n";
print "Salary = $salary\n";

Isso produzirá o seguinte resultado -

Age = 25
Name = John Paul
Salary = 1445.5

Variáveis ​​de matriz

Uma matriz é uma variável que armazena uma lista ordenada de valores escalares. Variáveis ​​de matriz são precedidas por um sinal "arroba" (@). Para se referir a um único elemento de uma matriz, você usará o cifrão ($) com o nome da variável seguido pelo índice do elemento entre colchetes.

Aqui está um exemplo simples de uso de variáveis ​​de matriz -

#!/usr/bin/perl

@ages = (25, 30, 40);             
@names = ("John Paul", "Lisa", "Kumar");

print "\$ages[0] = $ages[0]\n";
print "\$ages[1] = $ages[1]\n";
print "\$ages[2] = $ages[2]\n";
print "\$names[0] = $names[0]\n";
print "\$names[1] = $names[1]\n";
print "\$names[2] = $names[2]\n";

Aqui usamos o sinal de escape (\) antes do sinal $ apenas para imprimi-lo. Outro Perl o entenderá como uma variável e imprimirá seu valor. Quando executado, isso produzirá o seguinte resultado -

$ages[0] = 25
$ages[1] = 30
$ages[2] = 40
$names[0] = John Paul
$names[1] = Lisa
$names[2] = Kumar

Variáveis ​​de hash

Um hash é um conjunto de key/valuepares. Variáveis ​​hash são precedidas por um sinal de porcentagem (%). Para se referir a um único elemento de um hash, você usará o nome da variável hash seguido pela "chave" associada ao valor entre colchetes.

Aqui está um exemplo simples de uso de variáveis ​​hash -

#!/usr/bin/perl

%data = ('John Paul', 45, 'Lisa', 30, 'Kumar', 40);

print "\$data{'John Paul'} = $data{'John Paul'}\n";
print "\$data{'Lisa'} = $data{'Lisa'}\n";
print "\$data{'Kumar'} = $data{'Kumar'}\n";

Isso produzirá o seguinte resultado -

$data{'John Paul'} = 45
$data{'Lisa'} = 30
$data{'Kumar'} = 40

Contexto Variável

O Perl trata a mesma variável de maneira diferente com base no Contexto, ou seja, a situação onde uma variável está sendo usada. Vamos verificar o seguinte exemplo -

#!/usr/bin/perl

@names = ('John Paul', 'Lisa', 'Kumar');

@copy = @names;
$size = @names;

print "Given names are : @copy\n";
print "Number of names are : $size\n";

Isso produzirá o seguinte resultado -

Given names are : John Paul Lisa Kumar
Number of names are : 3

Aqui, @names é um array, que foi usado em dois contextos diferentes. Primeiro nós o copiamos em qualquer outro array, ou seja, lista, então ele retornou todos os elementos assumindo que o contexto é o contexto de lista. Em seguida, usamos o mesmo array e tentamos armazenar esse array em um escalar, portanto, neste caso, ele retornou apenas o número de elementos neste array, assumindo que o contexto é escalar. A tabela a seguir lista os vários contextos -

Sr. Não. Contexto e descrição
1

Scalar

A atribuição a uma variável escalar avalia o lado direito em um contexto escalar.

2

List

A atribuição a uma matriz ou hash avalia o lado direito em um contexto de lista.

3

Boolean

O contexto booleano é simplesmente qualquer lugar onde uma expressão está sendo avaliada para ver se ela é verdadeira ou falsa.

4

Void

Esse contexto não só não se importa com o valor de retorno, como nem mesmo quer um valor de retorno.

5

Interpolative

Este contexto só acontece entre aspas, ou coisas que funcionam como aspas.