Perl - Variables

Las variables son las ubicaciones de memoria reservadas para almacenar valores. Esto significa que cuando crea una variable, reserva algo de espacio en la memoria.

Según el tipo de datos de una variable, el intérprete asigna memoria y decide qué se puede almacenar en la memoria reservada. Por lo tanto, al asignar diferentes tipos de datos a las variables, puede almacenar números enteros, decimales o cadenas en estas variables.

Hemos aprendido que Perl tiene los siguientes tres tipos de datos básicos:

  • Scalars
  • Arrays
  • Hashes

En consecuencia, vamos a utilizar tres tipos de variables en Perl. UNscalarLa variable irá precedida por un signo de dólar ($) y puede almacenar un número, una cadena o una referencia. UnarrayLa variable precederá por el signo @ y almacenará listas ordenadas de escalares. Finalmente, elHash La variable precederá por el signo% y se utilizará para almacenar conjuntos de pares clave / valor.

Perl mantiene cada tipo de variable en un espacio de nombres separado. Por lo tanto, puede, sin temor a conflictos, usar el mismo nombre para una variable escalar, una matriz o un hash. Esto significa que $ foo y @foo son dos variables diferentes.

Creando Variables

Las variables de Perl no tienen que declararse explícitamente para reservar espacio en la memoria. La declaración ocurre automáticamente cuando asigna un valor a una variable. El signo igual (=) se utiliza para asignar valores a las variables.

Tenga en cuenta que esto es obligatorio para declarar una variable antes de usarla si usamos use strict declaración en nuestro programa.

El operando a la izquierda del operador = es el nombre de la variable, y el operando a la derecha del operador = es el valor almacenado en la variable. Por ejemplo

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

Aquí 25, "John Paul" y 1445,50 son los valores asignados a las variables $ age , $ name y $ salario , respectivamente. En breve veremos cómo podemos asignar valores a matrices y hashes.

Variables escalares

Un escalar es una sola unidad de datos. Esos datos pueden ser un número entero, un punto flotante, un carácter, una cadena, un párrafo o una página web completa. Simplemente decirlo podría ser cualquier cosa, pero solo una cosa.

Aquí hay un ejemplo simple de uso de variables 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";

Esto producirá el siguiente resultado:

Age = 25
Name = John Paul
Salary = 1445.5

Variables de matriz

Una matriz es una variable que almacena una lista ordenada de valores escalares. Las variables de matriz están precedidas por un signo "arroba" (@). Para hacer referencia a un solo elemento de una matriz, utilizará el signo de dólar ($) con el nombre de la variable seguido del índice del elemento entre corchetes.

Aquí hay un ejemplo simple del uso de variables 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";

Aquí usamos el signo de escape (\) antes del signo $ solo para imprimirlo. Otro Perl lo entenderá como una variable e imprimirá su valor. Cuando se ejecuta, esto producirá el siguiente resultado:

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

Variables hash

Un hash es un conjunto de key/valuepares. Las variables hash están precedidas por un signo de porcentaje (%). Para hacer referencia a un solo elemento de un hash, utilizará el nombre de la variable hash seguido de la "clave" asociada con el valor entre paréntesis.

Aquí hay un ejemplo simple del uso de variables 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";

Esto producirá el siguiente resultado:

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

Contexto variable

Perl trata la misma variable de manera diferente según el contexto, es decir, la situación en la que se está utilizando una variable. Veamos el siguiente ejemplo:

#!/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";

Esto producirá el siguiente resultado:

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

Aquí @names es una matriz, que se ha utilizado en dos contextos diferentes. Primero lo copiamos en cualquier otro arreglo, es decir, lista, por lo que devolvió todos los elementos asumiendo que el contexto es contexto de lista. A continuación, usamos la misma matriz e intentamos almacenar esta matriz en un escalar, por lo que en este caso devolvió solo el número de elementos en esta matriz asumiendo que el contexto es un contexto escalar. La siguiente tabla enumera los diversos contextos:

No Señor. Contexto y descripción
1

Scalar

La asignación a una variable escalar evalúa el lado derecho en un contexto escalar.

2

List

La asignación a una matriz o un hash evalúa el lado derecho en un contexto de lista.

3

Boolean

El contexto booleano es simplemente cualquier lugar donde se evalúa una expresión para ver si es verdadera o falsa.

4

Void

A este contexto no solo no le importa cuál es el valor de retorno, ni siquiera quiere un valor de retorno.

5

Interpolative

Este contexto solo ocurre entre comillas o cosas que funcionan como comillas.