Mam kilka skryptów, które rozpocząłem testowanie jednostkowe przy użyciu pomysłu "modulino". Napotkałem problem polegający na tym, że gdy skrypt jest wywoływany z "perl -d", skrypt nie działa jako wywołujący() zwraca wartość true.Wydanie Perla -d i modulino
Mam główny korpus skryptu zawinięty w main(), a niektóre podprogramy są powoli wyciągane z głównego() do własnych podprogramów.
Na początku skryptu mam:
main(@ARGS) unless caller();
Wywołany w .T testów to działa jak chcę, nie działa main(), więc mogę przetestować podprogramów. Kiedy wywołuję skrypt z CLI działa świetne wywoływanie main().
Problem pojawia się, gdy nazywam go z CLI z:
perl -d myscript.pl
Na tym etapie rozmówcy zwraca poprawną wartość (zamiast undef) i główny nie jest tzw.
Sugestie byłyby bardzo cenne, jeśli chodzi o podejście do tego.
Dobry połów. Nigdy bym tego nie rozważał, ponieważ rzadko używam debuggera Perla. Dzięki, :) –
Nie mogę odtworzyć tego zachowania. Napisałem małe modulino, a debugger nadal działa dobrze. Czy możesz wysłać przykład? – cjm
Powinien być "@ ARGV" zamiast "@ ARGS". Na wypadek, gdyby ktoś po prostu kopiował wklejanie :) – famousgarkin