En mi código, estoy estado usando el método bastante primitiva de parámetros de extracción a partir de una llamada a la función de la siguiente manera:¿Cómo se obtienen múltiples argumentos en las funciones de Perl?
sub addSix ($$$$$$) {
my ($a, $b, $c, $d, $e, $f) = (shift, shift, shift, shift, shift, shift);
return $a + $b + $c + $d + $e + $f;
}
print addSix (1, 2, 3, 4, 5, 6) . "\n";
(olvida el código primitivo, el bit saliente es el múltiplo shift
llamadas).
Ahora que parece bastante complicado para mí y aunque Perl puede tener algo como:
my ($a, $b, $c, $d, $e, $f) = shift (6);
o algo similar.
Pero no puedo encontrar nada como eso. Sé que puedo usar matrices para esto, pero creo que todavía tendría que descomprimir la matriz en escalares individuales. Eso no sería tan malo para el caso de ejemplo anterior, donde los seis parámetros son similares, pero estoy más interesado en el caso en que no son realmente adecuados como una matriz.
¿Cómo se pueden extraer los parámetros sin terminar con un marasmo de shift
palabras clave?
Nota: Evitar el uso de '' $ a' y $ b' como nombres de variables, ya que están pensados para ser utilizados en el interior 'sólo bloquea sort'. – Zaid
@Zaid, es el código _sample_, de hecho nombro mis variables reales un poco menos sucinto que eso :-) – paxdiablo
obviamente no para un ejemplo de agregar, pero para una subrutina real que requiere más que un puñado de argumentos, podría ser mejor comience a usar parámetros con nombre: 'my% params = @_;' y llámelo como 'mysub foo => 1, bar => 2, baz => 3, ...' –