Ho alcuni script che ho iniziato con l'unit test utilizzando l'idea del "modulino". Ho riscontrato un problema in quanto quando lo script viene chiamato con "perl -d" lo script non viene eseguito poiché caller() restituisce un valore true.Edizione Perl -d e modulino
Ho il corpo principale dello script racchiuso in un main() e alcune subroutine vengono lentamente estratte da main() nelle proprie subroutine.
Nella parte superiore dello script che ho:
main(@ARGS) unless caller();
Quando viene chiamato in .T test funziona come voglio, non in esecuzione main() in modo da poter testare le subroutine. Quando chiamo lo script da CLI funziona great calling().
Il problema si verifica quando lo chiamo io dalla CLI con:
perl -d myscript.pl
In questa fase chiamante restituisce un valore valido (anziché undef) e principale non viene chiamato.
I suggerimenti sarebbero molto apprezzati su come affrontare questo.
Buona cattura. Non lo considererei mai visto che non uso quasi mai il debugger perl. Grazie, :) –
Non riesco a riprodurre questo comportamento. Ho scritto un piccolo modulino e il debugger funziona ancora bene. Puoi pubblicare un esempio? – cjm
Ci dovrebbe essere '@ ARGV' invece di' @ ARGS'. Nel caso in cui qualcuno fosse solo copia-incolla :) – famousgarkin