Если вам не нравятся break
s и goto
s, вы можете использовать «традиционный» цикл for вместо for-in с дополнительным условием прерывания:
int a, b;
bool abort = false;
for (a = 0; a < 10 && !abort; a++) {
for (b = 0; b < 10 && !abort; b++) {
if (condition) {
doSomeThing();
abort = true;
}
}
}
Я, вероятно, не скажу вам больших новостей, если скажу вам, что PAR (и, вероятно, также perlapp) не предназначены для упаковки всего набора тестов и множества CPAN-модулей создавать побочные продукты. Они предназначены для упаковки автономных приложений или двоичных JAR-подобных библиотек модулей.
При этом вы можете добавлять произвольные файлы в PAR-архив (как в библиотеки .par, так и в автономные .exe), используя pp - переключатель. В случае автономного исполняемого файла содержимое будет извлечено в $ ENV {PAR_TEMP}. "/ Inc" во время выполнения.
Это оставляет вам проблему повторного использования исполняемого файла, упакованного в PAR, для запуска теста жгут (и позволяя ему запускать ваш исполняемый файл как «perl»). У меня нет готового решения для этого, но недавно я работал над тем, чтобы исполняемые файлы, упакованные в PAR, можно было повторно использовать в качестве интерпретаторов perl более или менее общего назначения. Два подводных камня, прежде чем я объясню, как вы можете это использовать:
К сожалению, последняя проблема может убить этот подход для вас. Я думал о поддержке параметров командной строки Perl, но в ближайшее время не буду реализовывать его.
Вот рецепт, как получить PAR с поддержкой «многоразового exe»: