La forma de declararlas es usando la palabra "sub" seguida del nombre:
sub suma { ... }
Los parámetros se leen a través del array "@_", que podemos recorrer de varias formas:
- Accediendo a cada elemento: el primer parámetro sería @_[0], el segundo @_[1], el tercero @_[2] y así sucesivamente.
- Usando la orden "foreach", que lee cada valor del array y lo guarda en una variable: foreach (&variable) (@array)
- Usando la orden "shift" para acceder al primer valor y "desplazar" los demás valores, de modo que el que antes era el segundo pase a ser el nuevo primero.
Las variables locales se preceden con "my":
my $valorTemporal = 0;
Si queremos devolver un valor se usa "return".
En la forma "clásica" de declarar la función, no se usan paréntesis, y la llamada se precede con un símbolo "&", así:
sub suma { ... }
&suma(3,4);
En la forma "moderna" (utilizable a partir de Perl 5) se puede declarar con paréntesis (e indicar el número de parámetros con símbolos "$") y llamar sin paréntesis:
sub suma ($) { ... }
suma(3,4);
Vamos a agrupar todo esto en un ejemplo:
# Función para saludar a varios, al antiguo estilo
sub saludo
{
print "Esto es un saludo para: ";
foreach $actual (@_) {
print $actual . " ";
}
print "\n";
}
# Función para elevar al cuadrado, al antiguo estilo
sub cuadrado {
my $numero = shift;
$numero **= 2;
return $numero;
}
# Función para sumar dos números, al modo moderno, 2 parámetros
sub suma($$)
{
return $_[0] + $_[1];
}
# Cuerpo del programa
# Primero llamamos a la función saludo, al antiguo estilo
&saludo("Nacho", "Juan");
#Luego, elevamos 3 al cuadrado
print "3 al cuadrado es : " . &cuadrado(3) ."\n";
#Finalmente, sumamos 4 y 6
print "4 + 6 = " . suma(4,6) ."\n";
El resultado de este programa sería
Esto es un saludo para: Nacho Juan
3 al cuadrado es : 9
4 + 6 = 10
No hay comentarios:
Publicar un comentario