我有以下代码:
$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 的新手,正在尝试一些东西。我注意到的一件事是,如果想要将数组作为哈希映射键的值传递,一种方法是通过引用传递它。如下
$hash_map{key} = \@arr
Run Code Online (Sandbox Code Playgroud)
有没有办法直接按值传递数组?谢谢