Contexto escalar y de lista en Perl
La idea que hace a Perl ser Perl: la misma expresión significa dos cosas según quién la recibe.
use strict;
use warnings;
my @beans = ("arabica", "robusta", "liberica");
my $count = @beans; # scalar context: the length
my ($first) = @beans; # list context: the first element
print "$count kinds, starting with $first\n";
print scalar(@beans), " again, forced with scalar()\n";
my ($x, $y, @rest) = (1, 2, 3, 4, 5);
print "x $x, y $y, rest @rest\n";
Cómo funciona
- Asignar
@beansa un escalar da su longitud; poner el destino entre paréntesis toma el primer elemento. scalar(@beans)fuerza el conteo donde sea, incluso a media lista dentro de unprint.- Una asignación de lista separa
$xy$y; luego el voraz@restse traga todo lo que queda.
Palabras clave y builtins usados aquí
myprintscalaruse
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 364
- Tokens
- 75
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 64 segundos.
Paso 1 de 3 en Listas y contexto; paso 10 de 27 en Fundamentos del lenguaje.