gpt4 book ai didi

multithreading - Perl线程::队列

转载 作者:行者123 更新时间:2023-12-03 13:14:48 27 4
gpt4 key购买 nike

我正在创建一个Thread::Queue元素数组。
我这样做是这样的:

for (my $i=0; $i < $queues_amount; $i++){
$queues[i]=Thread::Queue->new;
}

但是,当我在每个队列中填充这样的元素时
$queues[$index]->enqueue($element);

我收到以下错误:

无法在未定义的值上调用方法“入队” ...

您能帮我找出问题所在吗?

我的perl版本是5.12.2。

最佳答案

您没有在循环内的$变量上使用$i标记:

for (my $i=0; $i < $queues_amount; $i++){
$queues[i]=Thread::Queue->new; # should be $i
}

如果启用了 use strict,那么 subs部分将引发有关裸字 i的错误。要捕获许多错误,请将 use warnings; use strict;放在所有程序的顶部。

将其编写为:
my @queues = map {Thread::Queue->new} 0 .. $queues_amount - 1;

关于multithreading - Perl线程::队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232069/

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