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