相关疑难解决方法(0)

为什么$ foo - > {bar} autovivify但%$ foo没有?

我有以下代码:

$headers;
some_sub( %$headers );
Run Code Online (Sandbox Code Playgroud)

当我打电话时,some_sub我得到一个错误:

不能使用未定义的值作为HASH参考...

但类似的代码不会产生错误:

$headers->{ x };
Run Code Online (Sandbox Code Playgroud)

为什么自动复制在第一个示例中的工作方式与在第二个示例中的工作方式不同?

UPD

我注意到@ThisSuitIsBlackNot.我真的问:

为什么我的$ h; $ h - > {foo}的作品和我的$ h; %$ h没有

UPD
真正的代码:

my $email =  Email::Simple->create(()
    ,header =>  [()
        ,To             =>  $address
        ,From           =>  $cnf->{ from }
        ,Subject        =>  $subject
        ,'Content-Type' =>  'text/html; charset="utf8"'
        ,%$headers
    ]
    ,body => $body
);
Run Code Online (Sandbox Code Playgroud)

perl reference autovivification

3
推荐指数
2
解决办法
151
查看次数

在 Perl 中将数组按值传递给哈希值?

我是 Perl 的新手,正在尝试一些东西。我注意到的一件事是,如果想要将数组作为哈希映射键的值传递,一种方法是通过引用传递它。如下

$hash_map{key} = \@arr
Run Code Online (Sandbox Code Playgroud)

有没有办法直接按值传递数组?谢谢

perl

1
推荐指数
1
解决办法
1826
查看次数

标签 统计

perl ×2

autovivification ×1

reference ×1