gpt4 book ai didi

linux - 不可预测的警报忽略信号

转载 作者:太空宇宙 更新时间:2023-11-04 04:23:21 26 4
gpt4 key购买 nike

执行下面的 foreach 循环时,我不断收到“alarm__ignore”信号。奇怪的是,该错误出现在循环的不同迭代中(即有时是第三次,有时是第 26 次等),并且我无法识别它发生的任何韵律或原因。当我注释掉“my @cols = split(/\s+/, $line)”时,该脚本运行时没有错误,但我不明白为什么拆分会导致信号。

这是代码:

my @forest = ();

foreach (@treeBlobs) {

my @treeBlob = @{$_};

my $thisTree = eval {

my %tree = ();

foreach my $line (@treeBlob) {
my @cols = split(/\s+/, $line);
$tree{id++} = {map{$CLASSIFIER_COLUMNS[$_] => $cols[$_]}(0..scalar @cols-1)};
}

return \%tree;

};

print "ERROR: $@\n" if $@;
push @forest, $thisTree;
my $sc = scalar @forest;
print "FOREST: $sc; $thisTree\n";
}

这是一些示例输出:

...
FOREST: 19; HASH(0x4668c90)
FOREST: 20; HASH(0x4664e10)
FOREST: 21; HASH(0x4658e30)
FOREST: 22; HASH(0x465ca80)
FOREST: 23; HASH(0x4664860)
FOREST: 24; HASH(0x4664240)
FOREST: 25; HASH(0x46740b0)
FOREST: 26; HASH(0x4667a70)
FOREST: 27; HASH(0x465cf50)
FOREST: 28; HASH(0x465cfd0)
ERROR: __alarm__ignore__(54)

FOREST: 29;
FOREST: 30; HASH(0x465ada0)

同样,错误并不总是(甚至通常)发生在循环的第 29 次迭代中 - 它可能发生在任何迭代中。

想法?

谢谢!

最佳答案

您没有显示引发异常的原因。听起来您正在使用 alarm$SIG{ALRM} 处理程序结合使用,将信号转换为异常。

关于linux - 不可预测的警报忽略信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11298062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com