【发布时间】:2011-04-06 02:34:45
【问题描述】:
使用 Ctrl + C 中断下面的程序会导致 perl 5.10.0 出现“分段错误”。它适用于 perl 5.8.8。知道为什么吗?
#!/usr/bin/perl
# just changing the shebang line to use perl 5.10.0 causes it to seg fault
# when interrupted with Ctrl + C
use strict;
use warnings;
$SIG{INT}=\&clean;
sub clean {
print 'caught';
}
sleep 10;
(程序取自Problem with perl signal INT)
perl 5.10版本为:
$ perl5.10.0 -v
This is perl, v5.10.0 built for i686-linux-thread-multi
(with 3 registered patches, see perl -V for more detail)
Copyright 1987-2007, Larry Wall
Binary build 1002 [283697] provided by ActiveState http://www.ActiveState.com
Built Jan 10 2008 07:35:18
...
Linux 发行版:
$ cat /proc/version
Linux version 2.6.18-128.7.1.el5 (mockbuild@hs20-bc2-3.build.redhat.com)
(gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Aug 19 04:00:49 EDT 2009
谢谢
【问题讨论】:
-
我强烈建议您将此问题发布到perlmonks.org 而不是这里。那里有更多的 Perl 人可以在更多的平台上测试它,并且可能知道这样的错误。如果它仍然是当前 Perl 平台中的错误,则绝对应该使用
perlbug实用程序报告。 -
为什么是 5.10.0?你试过 5.10.1 甚至 5.12.3 吗?
-
不。这是我们在系统中可以访问的最新信息。我可以建立自己的,但我几乎会在不得已的情况下这样做。
-
构建新的 Perl 或从 ActiveState 下载新的二进制文件并不难。
-
5.10.1 中修复了 很多 个错误。我会先检查它是否已经修复。
标签: perl