Variables Perl

Las variables son datos almacenados en la memoria; crear una variable abre un espacio en la memoria.

El intérprete decidirá el espacio de almacenamiento en la memoria según el tipo de variable, por lo que puedes asignar diferentes tipos de datos a las variables, como enteros, flotantes, cadenas, etc.

En el capítulo anterior ya presentamos los tres tipos de datos básicos de Perl: escalares, arrays y hash.

    Los escalares comienzan con $, como $a $b, que son dos escalares.
  • Los arrays comienzan con @, como @a @b, que son dos arrays.
  • Los hash comienzan con %, %a y %b son dos hash.

Perl establece un espacio de nombres independiente para cada tipo de variable, por lo que diferentes tipos de variables pueden usar el mismo nombre sin preocuparse por conflictos. Por ejemplo, $foo y @foo son dos variables diferentes.


Crear variables

Las variables no necesitan declarar el tipo explícitamente; después de asignar la variable, el intérprete asigna automáticamente el espacio de tipo correspondiente.

Las variables se asignan usando el signo igual (=).

Podemos usar en el programause strictla declaración para que todas las variables deban declarar su tipo obligatoriamente.

El lado izquierdo del signo igual es la variable, el lado derecho es el valor. Ejemplo:

$age = 25;             # 整型
$name = "ejemplo";      # 字符串
$salary = 1445.50;     # 浮点数

En el código anterior, 25, "ejemplo" y 1445.50 se asignan respectivamente a$age, $namey$salarylas variables.

A continuación veremos el uso de arrays y hash.


Variables escalares

Un escalar es una unidad de datos única. Los datos pueden ser enteros, flotantes, caracteres, cadenas, párrafos, etc. En pocas palabras, puede ser cualquier cosa. A continuación se muestra una aplicación simple de escalares:

Ejemplo

#!/usr/bin/perl $age = 25; # Entero $name = "ejemplo"; # Cadena $salary = 1445.50; # Flotante print "Age = $age\n"; print "Name = $name\n"; print "Salary = $salary\n";

El resultado de ejecución del programa anterior es:

Age = 25
Name = ejemplo
Salary = 1445.5

Variables de array

Un array es una variable que se utiliza para almacenar una secuencia ordenada de valores escalares.

Los arrays comienzan con @.

Para acceder a una variable de array, puedes usar el signo de dólar ($) + nombre de variable, y especificar el índice para acceder. Ejemplo:

Ejemplo

#!/usr/bin/perl @ages = (25, 30, 40); @names = ("google", "ejemplo", "taobao"); 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";

El resultado de ejecución del programa anterior es:

$ages[0] = 25
$ages[1] = 30
$ages[2] = 40
$names[0] = google
$names[1] = ejemplo
$names[2] = taobao

En el programa usamos el carácter de escape (\) antes del signo $, para poder imprimir el carácter $.


Variables hash

Un hash es unkey/valueconjunto de pares.

Los hash comienzan con %.

Si quieres acceder a los valores de un hash, puedes usar$ + {key}el siguiente formato de acceso:

Ejemplo

#!/usr/bin/perl %data = ('google', 45, 'ejemplo', 30, 'taobao', 40); print "\$data{'google'} = $data{'google'}\n"; print "\$data{'ejemplo'} = $data{'ejemplo'}\n"; print "\$data{'taobao'} = $data{'taobao'}\n";

El resultado de ejecución del programa anterior es:

$data{'google'} = 45
$data{'ejemplo'} = 30
$data{'taobao'} = 40

Contexto de variables

El llamado contexto se refiere a la posición en la que se encuentra la expresión.

El contexto está determinado por el tipo de variable en el lado izquierdo del signo igual. Si el lado izquierdo es un escalar, es contexto escalar; si el lado izquierdo es una lista, es contexto de lista.

El intérprete de Perl determina el tipo de variable según el contexto. Ejemplo:

Ejemplo

#!/usr/bin/perl @names = ('google', 'ejemplo', 'taobao'); @copy = @names; # Copiar array $size = @names; # Asignar el array a un escalar, devuelve el número de elementos del array print "Los nombres son: @copy\n"; print "El número de nombres es:$size\n";

El resultado de ejecución del programa anterior es:

名字为 : google ejemplo taobao
名字数为 : 3

En el código, @names es un array, que se usó en dos contextos diferentes. En el primero se copió a otro array, por lo que generó todos los elementos del array. En el segundo asignamos el array a un escalar, y devolvió el número de elementos del array.

A continuación se enumeran varios contextos diferentes:

N.º Contexto y descripción
1 Escalar −

Asignación a una variable escalar; el lado derecho se evalúa en contexto escalar.

2 Lista −

Asignación a un array o hash; el lado derecho se evalúa en contexto de lista.

3 Booleano −

El contexto booleano es una evaluación simple de la expresión para comprobar si es verdadero o falso.

4 Void −

Este contexto no necesita preocuparse por el valor que devuelve; generalmente no se necesita un valor de retorno.

5 Interpolación −

Este contexto solo ocurre dentro de comillas.

Otras extensiones