En Perl, usamos variables para acceder a los datos almacenados en una ubicación de memoria (todos los datos y funciones se almacenan en la memoria). A las variables se les asignan valores de datos que se utilizan en varias operaciones. Perl Reference es una forma de acceder a los mismos datos pero con una variable diferente. Una referencia en Perl es un tipo de datos escalares que contiene la ubicación de otra variable. Otra variable puede ser escalar, hash, arrays, nombre de función, etc. La estructura de datos anidados se puede crear fácilmente ya que un usuario puede crear una lista que contiene las referencias a otra lista que puede contener además las referencias a arrays, escalares o hashes, etc.
Creación de referencia
Puede crear referencias para valor escalar , hash, array, función, etc. Para crear una referencia, defina una nueva variable escalar y asígnele el nombre de la variable (cuya referencia desea crear) prefijándola con una barra invertida.
Ejemplos: Hacer referencias de diferentes tipos de datos:
# Array Reference # defining array @array = ('1', '2', '3'); # making reference of array variable $reference_array = \@array;
# Hash Reference # defining hash %hash = ('1'=>'a', '2'=>'b', '3'=>'c'); # make reference of the hash variable $reference_hash = \%hash;
# Scalar Value Reference # defining scalar $scalar_val = 1234; # making reference of scalar variable $reference_scalar = \$scalar_val;
Nota:
- Se puede crear una referencia a un hash anónimo usando llaves {} alrededor de los pares de clave y valor.
Ejemplo:
# creating reference to anonymous hash $ref_to_anonymous_hash = {'GFG' => '1', 'Geeks' => '2'};
- Se puede crear una referencia a una array anónima utilizando los corchetes [] .
Ejemplo:
# creating reference to an anonymous array $ref_to_anonymous_array = [20, 30, ['G', 'F', 'G']];
- También se puede crear una referencia a una subrutina anónima con la ayuda de sub . Aquí no habrá nombre para el sub .
Ejemplo:
# creating reference to an anonymous subroutine $ref_to_anonymous_subroutine = sub { print "GeeksforGeeks\n"};
- No se puede crear una referencia a un identificador de entrada/salida, es decir, un identificador de directorio y un identificador de archivo .
desreferenciación
Ahora, después de haber hecho la referencia, necesitamos usarla para acceder al valor. La desreferenciación es la forma de acceder al valor en la memoria señalado por la referencia. Para desreferenciar, usamos el prefijo $, @, % o & dependiendo del tipo de variable (una referencia puede apuntar a una array, escalar o hash, etc.).
Ejemplo 1:
# Perl program to illustrate the # Dereferencing of an Array # defining an array @array = ('1', '2', '3'); # making an reference to an array variable $reference_array = \@array; # Dereferencing # printing the value stored # at $reference_array by prefixing # @ as it is a array reference print @$reference_array;
123
Ejemplo 2:
# Perl program to illustrate the # Dereferencing of a Hash # defining hash %hash = ('1'=>'a', '2'=>'b', '3'=>'c'); # creating an reference to hash variable $reference_hash = \%hash; # Dereferencing # printing the value stored # at $reference_hash by prefixing # % as it is a hash reference print %$reference_hash;
3c2b1a
Ejemplo 3:
# Perl program to illustrate the # Dereferencing of a Scalar # defining a scalar $scalar = 1234; # creating an reference to scalar variable $reference_scalar = \$scalar; # Dereferencing # printing the value stored # at $reference_scalar by prefixing # $ as it is a Scalar reference print $$reference_scalar;
1234
Publicación traducida automáticamente
Artículo escrito por Shashank_Sharma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA