perl | Sensibilidad del contexto de la lista

Introducción
En Perl, las llamadas a funciones , los términos y las declaraciones tienen explicaciones inconsistentes que se basan en su Contexto. Hay dos contextos cruciales en Perl, a saber, contexto de lista y contexto escalar. En un contexto de lista, Perl proporciona la lista de elementos. Pero en un contexto escalar, devuelve la cantidad de elementos en la array.
Perl presupone valores de lista en «Contexto de lista», donde la lista puede tener cualquier número de elementos o puede tener solo un elemento o incluso puede estar desolada.
 

Crear contexto de lista

 
El contexto de la lista se puede generar con el uso de arrays y listas.

  • Asignación a una array:
    Ejemplo:
    @y = LIST;
    @y = @z;
    @y = localtime();

    Aquí, localtime() es un nombre de función en Perl, que revela una representación numérica del tiempo en una array.

  • Asignación a una lista:
    Ejemplo:
    ($x, $y) = LIST;
    ($x) =  LIST;

    Aquí, List puede además crear List Context incluso si List tiene solo un elemento.

Ejemplo:

#!/usr/bin/perl
# Perl program of creating List Context
  
# array of elements
my @CS = ('geeks', 'for', 'geeks', 'articles'); 
              
# Assignment to a list 
my ($x, $y) = @CS; 
  
# Assignment to an Array
my @z = @CS;        
      
# Assignment of a function
# to an Array
my @t = localtime();
              
# Displays two elements of an
# array in List
print "$x $y\n";
  
# Displays an array of elements
print "@z\n";    
  
# Displays time stored in array 
# in number format
print @t;
Producción:

geeks for
geeks for geeks articles
201761121191690

Aquí, en la asignación a la Lista, hay dos escalares en la Lista, es decir, $x y $y, por lo que solo se asignan dos elementos de la array.
 

Arrays en contexto de lista:

 
Para provocar el contexto de la lista usando una array, debemos asignar una array a otra array.
Ejemplo:

#!/usr/bin/perl
  
# Program for arrays in List Context
use strict;
use warnings;
use 5.010;
  
my @x = ('computer_', 'science_', 'portal_',
         'for_', 'GeeksforGeeks');
  
# Assignment of an array to 
# another array
my @y = @x; 
  
# Printing the new array
print @y;
Producción:

computer_science_portal_for_GeeksforGeeks

Aquí, los elementos de una array se copian en otra array.

Uso de la declaración if en el contexto de la lista

 
if-statement se usa en un contexto de lista para mostrar las declaraciones encerradas dentro de ‘if’ solo cuando hay elementos presentes en la array.
Ejemplo:

#!/usr/bin/perl
  
# Program to display content of if-statement
use strict;
use warnings;
use 5.010;
  
my @x = ('G', 'f', 'G');
   
# Statement within 'if' will be executed 
# only if the array is not empty
if (@x)
{
    print "GeeksforGeeks";
}
Producción:

GeeksforGeeks

Aquí, si la array indicada tiene una cierta cantidad de elementos, entonces la condición if es verdadera y provoca el contenido de la declaración if, pero si la array está vacía, la condición if es falsa, por lo que no ejecuta las declaraciones dentro de if. declaración.

Lectura en contexto de lista:

 
«STDIN» es un operador de línea de lectura en Perl. Para colocar el operador de línea de lectura en el contexto de la lista, se requiere designar este operador a una array.
Ejemplo:

#!/usr/bin/perl
use strict;
use 5.010;
  
# Asking user to provide input 
print "Enter the list of names:\n";
  
# Getting input from user 
my @y = <STDIN>;
  
# Used to remove extra line of spaces
chomp @y;
  
# Printing the required output
print "The number of names are: " . 
                 scalar(@y) . "\n"; 
Producción:

Así es como funciona este programa:
Paso 1: Ingrese los nombres que se almacenarán en la array uno por uno con el uso de la tecla Intro.
Paso 2: presione Ctrl-D en los sistemas Linux mientras que Ctrl-Z en el sistema Windows para indicar el final de la entrada.
Paso 3: chomp se usa para eliminar la línea adicional agregada después de cada entrada.
Paso 4: Imprimir la cantidad de elementos en la array con el uso de escalar porque «una array en contexto escalar» solo puede devolver la longitud de una array.

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh 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 *