【问题标题】:Perl 5.10.0 Signal Handler IssuePerl 5.10.0 信号处理程序问题
【发布时间】: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


【解决方案1】:

您将需要提供更多详细信息,例如您使用的操作系统/版本,您是否使用系统 perl、perlbrew、活动 perl 等。针对构建自的 Perl 5.12.3 尝试此操作雪豹上的 Perlbrew,我无法重现该问题。

我也会遵循在 perlmonks.org 上询问的建议。

【讨论】:

  • 任何特定的 Linux 发行版?我可以尝试启动一个 vm 并在那里抛出活动 perl 看看会发生什么
  • 刚刚在 Perl 5.12.3 上尝试过 - 正如预期的那样,它没有问题。 Perl 5.10.0 中一定有一些与此相关的错误。谢谢大家。
猜你喜欢
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2011-11-18
  • 2017-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-05
相关资源
最近更新 更多