que tienen un archivo Perl así:¿Por qué me llaman "advertencias demasiado pronto para verificar prototipos" en mi código Perl?
use strict;
f1();
sub f3()
{ f2(); }
sub f1()
{}
sub f2()
{}
En resumen, f1
se llama antes de que se define. Entonces, Perl lanza una advertencia: "f1 llamó demasiado temprano para verificar el prototipo". Pero igual es el caso con f2
, la única diferencia es que se llama desde dentro de otra subrutina. No arroja una advertencia para f2
. ¿Por qué?
¿Cuál es la mejor manera de resolver este problema?
- declaran la subrutina antes de que se llama
- ir al sub así:
&f1();
Utilice el formato al publicar ejemplos de código: sangría líneas por 4 espacios hará que aparezcan como código en la pregunta, con resaltado y todo. –
Debería agregar el modificador -w si realmente quiere que esto falle –