Using perl Syntax Highlighting
my $vector1_ref = @_; Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Estás haciendo una asignación de un arreglo a un escalar. Lo que hace Perl es evaluar el arreglo en contexto escalar. En esa situación, del arreglo obtenemos el número de elementos que contiene, en tu caso, un '1' (porque @_ contiene un elemento).
Seguramente querrás decir
Using perl Syntax Highlighting
my $vector1_ref = $_[0
]; Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
o
Using perl Syntax Highlighting
my $vector1_ref = shift @_; Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
o
Using perl Syntax Highlighting
my $vector1_ref = shift; Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
o
Using perl Syntax Highlighting
my ($vector1_ref) = @_; Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Es decir, leer el primer valor de
@_ y pasarlo a
$vector1_ref. En el último ejemplo ves que he puesto los paréntesis. Eso quiere decir que tenemos un contexto de lista a ambos lados. Perl pasará los valores del arreglo a la lista de valores de my(). Como solo hay uno, pues solo pasará uno.
Más información en
perldata, sección
Scalar-values, donde dice "
If you evaluate an array in scalar context, it returns the length of the array".
Y en
Crea tus propias funciones.