mam złożyć Perl tak:Dlaczego otrzymuję ostrzeżenia "zwane za wcześnie, aby sprawdzić prototyp" w moim kodzie Perla?
use strict;
f1();
sub f3()
{ f2(); }
sub f1()
{}
sub f2()
{}
W skrócie, f1
nazywa zanim zostanie zdefiniowany. Tak więc Perl zgłasza ostrzeżenie: "f1 sprawdzono zbyt wcześnie, aby sprawdzić prototyp". Ale tak samo jest z f2
, jedyną różnicą jest to, że jest wywoływana z innego podprogramu. Nie generuje ostrzeżenia dla f2
. Czemu?
Jaki jest najlepszy sposób rozwiązania tego problemu?
- zadeklarować podprogram zanim to się nazywa
- wywołanie sub tak:
&f1();
Proszę używać formatowania podczas umieszczania próbek kodu: wcięcie linii przez 4 spacje spowoduje, że pojawią się one jako kod w pytaniu, z podświetlaniem i wszystkim. –
Powinieneś dodać przełącznik -w, jeśli naprawdę chcesz, aby to się nie udało –