perl hash 参考的参考

发布于 2024-12-09 11:17:41 字数 262 浏览 1 评论 0原文

my $hash_ref = { a => 1, b => 2 };
my $tmp_ref = $hash_ref;

代码如上,我想更改哈希值并插入一些新的对。我的问题如下:

  1. 我如何通过 $tmp_ref 实现这些
  2. 是否可以通过引用的引用更改或插入?
  3. 引用的引用、引用和具体的数据结构(这里是hash)之间是否一致?

多谢!

my $hash_ref = { a => 1, b => 2 };
my $tmp_ref = $hash_ref;

The code is as above and I want to change hash's value and insert some new pairs. my question are as follows:

  1. how can i achieve these by $tmp_ref
  2. Is it possible to change or insert by reference's reference?
  3. Is it consistent among reference's reference, reference and concrete data structure (here is hash)?

thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦醒灬来后我 2024-12-16 11:17:41

在这种情况下,$tmp_ref 不是对 $hash_ref 的引用,它只是 $hash_ref 值的副本。

您可以使用 $tmp_ref 访问哈希,就像使用 $hash_ref 一样:

$tmp_ref->{a}; # 1

$tmp_ref->{foobar} = "hi";
$tmp_ref->{foobar}; # "hi"

如果您确实想让 $tmp_ref 成为对 的引用>$hash_ref,以下是访问原始哈希值的方法:

$tmp_ref = \$hash_ref;
${$tmp_ref}{a};

In this case, $tmp_ref is not a reference to $hash_ref, it is simply a copy of whatever $hash_ref's value is.

You can access the hash with $tmp_ref like you would with $hash_ref:

$tmp_ref->{a}; # 1

$tmp_ref->{foobar} = "hi";
$tmp_ref->{foobar}; # "hi"

In case you actually wanted to make $tmp_ref a reference to $hash_ref, here is how you'd access the original hash:

$tmp_ref = \$hash_ref;
${$tmp_ref}{a};
苦行僧 2024-12-16 11:17:41

$hash_ref$tmp_ref 都将引用相同的哈希值,因此您可以向 $hash_ref 添加一些内容:

$tmp_ref->{c} = 3;

然后两个 $hash_ref$tmp_ref引用相同的(a => 1, b => 2, c => 3)< /代码>哈希。

引用是 Perl 版本的指针。

Both $hash_ref and $tmp_ref will refer to the same hash so you can add something to $hash_ref with:

$tmp_ref->{c} = 3;

Then both $hash_ref and $tmp_ref will pointrefer to the same (a => 1, b => 2, c => 3) hash.

References are Perl's version of pointers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文