typestar

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

  1. Asignar @beans a un escalar da su longitud; poner el destino entre paréntesis toma el primer elemento.
  2. scalar(@beans) fuerza el conteo donde sea, incluso a media lista dentro de un print.
  3. Una asignación de lista separa $x y $y; luego el voraz @rest se traga todo lo que queda.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en Listas y contexto; paso 10 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →