Pasar matrices a funciones en Perl

Creo que he entendido mal algunos aspectos del argumento que pasa a las funciones en Perl. Cuál es la diferencia entrefunc(\@array) yfunc(@array)?

AFAIK, en ambas funciones, los argumentos se pasan por referencia y en ambas funciones podemos cambiar los elementos de@array en el programa principal. Entonces, ¿cuál es la diferencia? ¿Cuándo debemos usar cuál?

@array = (1,2,3);
func(@array);
func(\@array);

sub func {
    ...
}

Además, ¿cómo imito el paso por valor en Perl? Esta usando@_ ¿la única forma

Respuestas a la pregunta(3)

Su respuesta a la pregunta