Dlaczego w moim kodzie Perla otrzymuję „zbyt wczesne wezwanie do sprawdzenia prototypu”?
Mam taki plik Perla:
use strict;
f1();
sub f3()
{ f2(); }
sub f1()
{}
sub f2()
{}
W skrócie,f1
jest wywoływany przed zdefiniowaniem. Perl zgłasza ostrzeżenie: „f1 nazywany zbyt wcześnie, aby sprawdzić prototyp”. Ale tak jest w przypadkuf2
, jedyna różnica polega na tym, że jest wywoływana z innego podprogramu. Nie oznacza to ostrzeżeniaf2
. Czemu?
Jaki jest najlepszy sposób rozwiązania tego problemu?
zadeklaruj podprogram zanim zostanie wywołanyzadzwoń do subskrypcji w ten sposób:&f1();