• Publicidad

Varios arrays como parámetros a función

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Varios arrays como parámetros a función

Notapor gorkalinux » 2009-06-23 03:47 @199

Si ejecuto esto...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use List::Util qw (sum);
use strict;

sub funcion
{
  my ($dato) = $_[0];
  my (@vector1) = $_[1];
  my (@vector2) = $_[2];

  print $dato."\n\n";

  foreach (@vector1)
  {
    print $_."\n";
  }
  print "\n";

  foreach (@vector2)
  {
    print $_."\n";
  }
  print "\n";

}

my $valor = "BIEN";

my @array1 = (
"hello",
"my",
"dear",
"friend"
);

my @array2 = (
">hola",
">que",
">tal",
">estas"
);

funcion($valor,@array1,@array2);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


... obtengo esto ...

Código: Seleccionar todo
BIEN

hello

my


... en lugar de esto ...

Código: Seleccionar todo
BIEN

hello
my
dear
friend

hola
que
tal
estas


... ¿cómo paso varios arrays como parámetros a una función de perl?
gorkalinux
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2009-04-14 02:23 @141

Publicidad

Notapor explorer » 2009-06-23 03:53 @204

Los puedes pasar por valores de referencia:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;

sub funcion {
  my ($dato, $vector1_ref, $vector2_ref) = @_;

  print "$dato\n\n";

  foreach (@{$vector1_ref}) {
    print "$_\n";
  }
  print "\n";

  foreach (@{$vector2_ref}) {
    print "$_\n";
  }
  print "\n";
}

my $valor = "BIEN";

my @array1 = (
"hello",
"my",
"dear",
"friend"
);

my @array2 = (
">hola",
">que",
">tal",
">estas"
);

funcion($valor, \@array1, \@array2);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2009-06-23 04:22 @223, editado 1 vez en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor gorkalinux » 2009-06-23 04:34 @232

Ahora lo entiendo. Muchas gracias, Explorer.
He oído que hay que tener cuidado porque los valores por referencia modificados se modifican también fuera de la función, pero creo que basta con hacer simplemente ...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my @vector1 = @{$vector1_ref};
my @vector2 = @{$vector2_ref};
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


... para des-referenciarlos. Para quien pueda necesitarlo.

Un saludo.
gorkalinux
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2009-04-14 02:23 @141


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 27 invitados

cron