Как я могу прервать или возобновить цикл Perl, когда пользователь нажимает клавишу? - PullRequest
2 голосов
/ 24 мая 2010

Это для отладки. У меня есть цикл for, который генерирует некоторый вывод в CLI Cygwin bash.

Я знаю, что могу перенаправить выходные данные в текстовые файлы и использовать Perl или даже обычный текстовый редактор для проверки значений, напечатанных для конкретной итерации, просто чувствую, что это немного больно.

Я сейчас думаю о том, чтобы поместить специальную подпрограмму в цикл for, чтобы она была «прервана» в начале каждой итерации, и сценарий Perl должен возобновляться для запуска только после нажатия клавиши пользователем (клавиша ввода с клавиатуры?)

Таким образом, я могу напрямую проверять значения, напечатанные во время каждой итерации.

Есть ли простой способ сделать это, не используя дополнительные библиотеки / CPAN?

1 Ответ

5 голосов
/ 24 мая 2010

Если вы просто хотите сделать паузу для ввода пользователем каждой итерации, просто выполните чтение из STDIN внутри вашего цикла:

my $debug = 1;
while ($looping) {
    if ( $debug ) {
        print "Press enter to continue\n";
        $input = <>;
    }
}

Если установлен флаг отладки, то программа будет приостанавливаться, пока пользователь не нажмет ввод, затем цикл возобновится. Вы можете распечатать свои переменные до паузы. Установите $debug = 0, чтобы отключить паузу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...