Ааа, старый вопрос "как мне протестировать программу". Самый простой трюк - вставить это в вашу программу, прежде чем она начнет что-то делать:
return 1 unless $0 eq __FILE__;
__FILE__
- текущий исходный файл. $0
- это название программы, которая запускается. Если они совпадают, ваш код выполняется как программа. Если они разные, он загружается как библиотека.
Этого достаточно, чтобы начать модульное тестирование подпрограмм внутри вашей программы.
require "some/program";
...and test...
Следующий шаг - переместить весь код вне подпрограммы в main
, тогда вы можете сделать это:
main() if $0 eq __FILE__;
и теперь вы можете проверить main (), как и любую другую подпрограмму.
Как только это будет сделано, вы можете начать думать о перемещении подпрограмм программы в свои собственные реальные библиотеки.