Вот моя среда тестирования:
root@redhat89195 bin]# ./perl -v
This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-thread-multi
.....
Фрагмент кода:
$SIG{INT}=sub{
print "1234\n";
print getc(STDIN);
print "4444\n";
};
print "5678\n";
print getc(STDIN);
после запуска программы сначала печатается «5678», затем ждет ввода, затем я ввожу «eeee», затем «ctrl-c», , затем обработчик непрерывно печатает «1234» и «4444» с пропуская функцию getc в обработчике , затем она вешает ожидающие вводы (я полагаю, что это getc за пределами обработчика, который все еще ожидает ввод), я ввожу "q", он печатает "q".
Итак, мой вопрос:
- почему не работает функция getc в обработчике? Кажется, что проблема не существует в других версиях Perl.
- Как можно решить, чтобы заставить работать функцию getc в обработчике?