这是我的测试环境:
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函数工作?