gpt4 book ai didi

perl - 从参数中取消引用哈希

转载 作者:行者123 更新时间:2023-12-02 08:58:45 25 4
gpt4 key购买 nike

此代码有效:

  my $href = shift @_;    # get reference to hash
my %h = %{$href}; # dereference hash

这个没有:

  my %h = %{shift @_};

还有这个:

  my %h = ${$_[0]}

为什么?

================================

再准确一点:

 1 #!/usr/bin/perl -w
2 use strict;
3 use warnings;
4
5 my %h;
6 sub a {
7
8 # that works - result 1
9 my $href = $_[0] || shift;
10 %h = %{$href};
11
12 # that does not work - result 0
13 # my %h = %{$_[0]};
14
15 # as well as that one - result 0
16 # my %h = %{shift @_};
17 $h{1}=2;
18 }
19
20 a(\%h);
21 print scalar (keys %h) . "\n";

换句话说,第 16 行 - 没有。

最佳答案

这会起作用。

  my %h = %{shift @_};

这不会。

  my %h = ${$_[0]} # not ${$_[0]}

那个印记应该是%

  my %h = %{$_[0]}

此外,使用警告;使用严格;


提示:上面的示例不起作用的原因是只有一个示例没有声明词法变量 %h = %{$href }; 不是 my %h = %{$href};

关于perl - 从参数中取消引用哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2967430/

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