Tracks
/
Perl
Perl
/
Temario
/
Referencias
Re

Referencias en Perl

9 ejercicios

Acerca de Referencias

Entender las referencias es un elemento fundamental para usar Perl de manera efectiva. Como las referencias son escalares, y los arrays y los hashes solo pueden contener escalares, las referencias son clave para anidar estas estructuras de datos.

Se pueden crear referencias para variables y subrutinas existentes usando el operador de barra invertida \:

  • \$scalar para crear una referencia a un escalar (esto puede ser cualquier escalar, p. ej., \1, no solo una variable).
  • \@array para crear una referencia a un array.
  • \%hash para crear una referencia a un hash.
  • \&sub para crear una referencia a código.

También puedes crear lo que se conoce como una referencia anónima para arrays, hashes y subrutinas:

  • ['Alice', 'Bob', 'Charlie'] para crear una referencia anónima a un array.
  • {foo => 'a', bar => 'b', baz => 'c'} para crear una referencia anónima a un hash.
  • sub { return 1 } para crear una referencia anónima a código.

ADVERTENCIA: Las llaves en Perl pueden ser ambiguas en ciertos contextos. Si no obtienes la referencia a hash que esperas, agrega un signo más al principio para desambiguarla, p. ej., +{}. Consulta Llaves para más información.

Se puede acceder a las referencias usando el operador de flecha ->:

  • $ref->[0] para acceder a un elemento dentro de una referencia a un array.
  • $ref->{foo} para acceder a un valor dentro de una referencia a un hash.
  • $ref->($arg) para llamar a una subrutina a través de una referencia a código.

Se puede acceder a los datos dentro de estructuras de datos complicadas, como arrays multidimensionales y hashes anidados, encadenando subíndices, p. ej., $ref->{foo}[0]{bar} (lo mismo que $ref->{foo}->[0]->{bar}).

Si quieres desreferenciar un array o un hash completos, puedes usar el operador de flecha seguido de @* o %*, respectivamente, p. ej., $ref->@* o $ref->%*. También puedes obtener rebanadas de una referencia a un array o a un hash reemplazando el * con un subíndice, p. ej., $ref->@[0..2] o $ref->@{'Foo', 'Bar'}. Para las rebanadas, la variación de sigilos se aplica aquí de la misma manera que con las variables de array y de hash.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva

Aprende Referencias

La práctica está bloqueada

Desbloquea 8 ejercicios más para practicar Referencias