gpt4 book ai didi

使用散列和数组组合的 Perl 表达式

转载 作者:行者123 更新时间:2023-12-01 23:00:27 24 4
gpt4 key购买 nike

我很难理解一段代码。声明是:

push(@{$errorfile{$var}}, $filepath);

我相信 push 用于将一个值附加到数组的末尾。但是上面的表达让我很困惑。有一个哈希值,并且使用了一个 @ 符号(通常与数组名称一起使用)。在代码的开头,“错误文件”被声明为:
my %errorfile;

有人可以帮我吗?

最佳答案

%errorfile是一个哈希。
$errorfile{$var}是散列中的(标量)值,对应于键 $var .该值恰好是一个数组引用。
@{$errorfile{$var}}是引用所指的数组。

初始化示例:my %errorfile = (foo => [12, 34], bar => [56]); .后 $var = "bar"; $filepath = "my/file.txt"; push(@{$errorfile{$var}}, $filepath); %errorfile变成 (foo => [12, 34], bar => [56, "my/file.txt"]) .

更多详情请见 Perl References David W. 发布的链接

一些亮点:

  • $scalar变量保存一个标量值,可以是 undef、整数、浮点数、字符串或引用。
  • @array变量保存一个数组,它是一个可索引的标量值列表。
  • %hash变量保存从字符串到标量值的映射。

  • 因此,将数组放入散列的唯一方法是将数组引用放入散列中的某个值。

    关于使用散列和数组组合的 Perl 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18727240/

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