Perl – Arrays vs Listas

Perl es un lenguaje de programación dinámico, interpretado y de propósito general. Perl tiene tres tipos de datos básicos, a saber, escalares , arrays y hashes .

Listas Perl

La lista es una secuencia de valores escalares. Sin embargo, la lista no es una estructura de datos en Perl. Hay operaciones limitadas que se pueden realizar en la lista en Perl. Dado que ninguna variable hace referencia a esta lista, las listas no se pueden utilizar para otras operaciones que no sean la impresión.

Ejemplo:

(10, 20, 30);
("this", "is", "a", "list", "in", "perl");

Lista sencilla

Una lista simple es aquella que contiene elementos homogéneos.

# declaration without variable referencing
print("List declared and printed: ");
print join(' ', 10, 20, 30, 40, 50);
print("\n\n");
  
# qw() forms list by extracting words 
# out of the string using space as a delimiter.
print("List declared using qw(): ");
print join(' ', qw(this is gfg));
print("\n\n");
  
# indexing
print("Accessing element at index 2: ");
print((10, 20, 30, 40, 50)[2]);
print("\n\n");
  
# range
print("Range function on list\n");
print join(' ', 1..6);
print("\n\n");
  
# loop
print("Iterating over list elements:\n ");
foreach $element (1..6)
{
    print("$element\t");
}
print("\n\n");
  
# splicing
print("Splicing list\n");
print("Spliced elements: ");
print join(' ', (1..6)[1..3]);
print("\n\n");

Producción:

List declared and printed: 10 20 30 40 50

List declared using qw(): this is gfg

Accessing element at index 2: 30

Range function on list
1 2 3 4 5 6

Iterating over list elements:
 1    2    3    4    5    6    

Splicing list
Spliced elements: 2 3 4

Lista compleja

Una lista compleja es aquella que contiene elementos heterogéneos.

print("complex", 10, 20, "list");

Producción:

complex1020list

Lista aplanada

Si existen listas anidadas, se fusionan para formar una sola lista sin ninguna anidación.

print(2, 3, 4, (5, 6));
print("\n");
print(2, 3, 4, 5, 6);
print("\n");
print((2, 3, 4), 5, 6);
print("\n");

Producción:

23456
23456
23456

Arrays Perl

Array es una estructura de datos de Perl. Array en Perl es una variable que contiene la lista. Las variables de array tienen el prefijo ‘@’. Las arrays tienen una amplia gama de aplicaciones en Perl. No hay restricciones en cuanto al tipo de operación que se puede realizar en los arreglos. Las arrays en Perl pueden ser 2D, pero las listas no pueden ser bidimensionales.

Ejemplo:

@num = (10, 20, 30);
@str = ("this", "is", "a", "list", "in", "perl");

operaciones de array

# declaration
@array = (10, 20, 30, 40, 50);
print("Declared array\n");
print join(' ', @array);
print("\n\n");
  
# accessing particular element
print("Accessing element at index 2 \n");
print(@array[2]);
print("\n\n");
  
# push
print("Pushing two elements in to the array\n");
  
## returns total no. of elements in updated array
push(@array, (60, 70)); 
print join(' ', @array);
print("\n\n");
  
# pop
print("Popping elements from array\n");
print("Popped element: ");
  
## returns the popped elements of the array
print(pop(@array)); 
print("\n");
print join(' ', @array);
print("\n\n");
  
# shift
print("Shift element in an array\n");
shift(@array);
print join(' ', @array);
print("\n\n");
  
# unshift
print("Unshift element in an array\n");
unshift(@array, 10);
print join(' ', @array);
print("\n\n");
  
# splicing the array
print("Splice an array\n");
print("Spliced elements: ");
print join(' ', splice @array, 3, 2 );
print("\nArray after being spliced: ");
print join(' ', @array);
print("\n\n");
  
# reversing the array
print("Reverse elements in an array\n");
print join(' ', reverse @array);
print("\n\n");
  
# loop
print("Iterate over elements in an array\n");
foreach $element (@array)
{
    print("$element\t");
}
print("\n\n");
  
# range
print("Range function\n");
@array1 = (1..5);
print("@array1\t");
print("\n\n");

Producción:

Declared array
10 20 30 40 50

Accessing element at index 2 
30

Pushing two elements in to the array
10 20 30 40 50 60 70

Popping elements from array
Popped element: 70
10 20 30 40 50 60

Shift element in an array
20 30 40 50 60

Unshift element in an array
10 20 30 40 50 60

Splice an array
Spliced elements: 40 50
Array after being spliced: 10 20 30 60

Reverse elements in an array
60 30 20 10

Iterate over elements in an array
10    20    30    60    

Range function
1 2 3 4 5    

array 2D

Perl permite la creación de una array bidimensional.

@array = ( [ 10, 20, 30 ],
           [ "ana", "joe", "ester" ],
           [ "Welcome to gfg" ] );
  
for $array_ref( @array ) 
{
    print("[ @$array_ref ], \n");
}

Producción:

[ 10 20 30 ],
[ ana joe ester ],
[ Welcome to gfg ],

A continuación se muestra una tabla de diferencias entre Arrays y List:

Residencia en arreglos Liza
Declaración Una variable hace referencia a una lista Sin referencias variables
Acceder a elementos Indexación admitida Indexación admitida
Rango Rango admitido Rango admitido
Empujar Se admite la inserción y el elemento recién agregado se inserta al final de la lista. Está prohibido empujar en la lista.
Estallido Pop es compatible y un elemento se extrae del final de la lista. Pop está prohibido en la lista
Círculo Los elementos de la array se pueden iterar mediante el uso de bucles Los elementos de la lista se pueden iterar mediante el uso de bucles
Cambio Se admite Shift y se elimina el primer elemento de la array Turno está prohibido en la lista
Unshift Se admite Unshift y agrega el elemento al frente de la array. Unshift está prohibido en la lista
Empalme El empalme es compatible con la array. El empalme es compatible con la lista. Sin embargo, no se puede acceder a la lista empalmada ya que ninguna variable hace referencia a ella.
Reverso La array admite la operación de inversión La lista no admite la inversión

A menudo, la lista y la array se consideran iguales en Perl. Pero hay diferencias entre los dos. Si bien la lista no es una estructura de datos en Perl, las arrays son variables que se refieren a listas en Perl. En aplicaciones prácticas, trabajamos con arreglos.

Publicación traducida automáticamente

Artículo escrito por Shreyasi_Chakraborty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *