next up previous contents
Next: Manejo de variables internas Up: Recibiendo parámetros Previous: Recibiendo parámetros   Contents

Nota respecto al por qué de @_

Mucha gente se pregunta por qué Perl maneja el arreglo default @_. ¿A qué me refiero? Lo explico con un par de ejemplos. En C declaramos una función de esta manera:

int func (int var1, char* var2);
En Python:

def func (var1, var2):
En PHP:

function func ($var1, $var2) { (...) }
Y así es prácticamente en cualquier lenguaje moderno. ¿Por qué en Perl tenemos que hacer malabares como lo comentábamos en la sección anterior ([*])?

Esto es, por más increíble que parezca, por diseño. En las primeras versiones de Perl no existían las variables léxicas. Al declarar una función con todo y los nombres de variables, esto impactaría en el espacio de nombres global. Y no es que los argumentos recibidos no tengan nombre -- Tienen un nombre claramente definido: El arreglo default, @_. De hecho, si nuestra función va a ser corta y esto no hará menos legible nuestro código (y con mucho mayor razón si la llamamos frecuentemente), les recomiendo utilizar al arreglo default directamente dentro de sus funciones, ya que con esto ahorramos la creación y asignación de variables. Sí, esto puede ser una mejoría casi indetectable, pero a través de la repetición, puede hacerse sensible.


next up previous contents
Next: Manejo de variables internas Up: Recibiendo parámetros Previous: Recibiendo parámetros   Contents
Gunnar Wolf 2002-05-20