gpt4 book ai didi

perl - 在需要均匀大小的列表的地方找到引用

转载 作者:行者123 更新时间:2023-12-02 15:20:12 26 4
gpt4 key购买 nike

我正在 Perl 中编写此代码,其中创建一个唯一的键,然后为其分配一个值。

  sub populate {
my $file = shift;
my %HoH = shift;

open(INFILE,$file);
.
.
.
$final_name = $prepend.$five;
$HoH{$final_name} = $seven;
}

现在我将两个参数传递给一个子例程,其 id 如下

&populate(\%abc,$file_1);
&populate(\%xyz,$file_2);

为什么它会给我这样的错误:

Reference found where even-sized list expected

最佳答案

因为您的散列被分配给引用,而不是散列(偶数大小的列表)。你需要做的是:

my $hashref = shift;

...

$hashref->{$final_name} = $seven;

ETA:您应该调用不带 & 的子例程,例如populate(...),除非您特别想覆盖子组件的原型(prototype)。如果您不知道原型(prototype)是什么,就不要使用 &

ETA2:您确实应该使用词法文件句柄和三参数打开。考虑这种情况:

open INFILE, $file;
some_sub();
$args = <INFILE>; # <--- Now reading from a closed filehandle

sub some_sub {
open INFILE, $some_file;
random code...
close INFILE;
}

关于perl - 在需要均匀大小的列表的地方找到引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6985643/

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