Проблема с Perc в getc в обработчике SIGINT в perl 5.14.2
Вот моя среда тестирования:
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 в обработчике?