perl哈希引用的引用
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!

#0

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};

#1

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.

推荐文章

不带XSL的php XML排序

不带XSL的php XML排序

推荐文章

PHP文件由浏览器下载,而不是由本地dev服务器(MAMP)处理

PHP文件由浏览器下载,而不是由本地dev服务器(MAMP)处理

推荐文章

Yii Framework/PDO获取错误CDbCommand无法执行SQL语句:SQLSTATE[42000]

Yii Framework/PDO获取错误CDbCommand无法执行SQL语句:SQLSTATE[42000]

推荐文章

Advantage数据库或SQL Server

Advantage数据库或SQL Server

推荐文章

如何在R中的函数调用中包含变量名?

如何在R中的函数调用中包含变量名?

推荐文章

对windows窗体控件进行线程安全调用

对windows窗体控件进行线程安全调用

推荐文章

数组数组数组vs.数组数组vs.类似的东西

数组数组数组vs.数组数组vs.类似的东西

推荐文章

在何处存储程序集的最佳实践?

在何处存储程序集的最佳实践?

推荐文章

Java网络/套接字编程教程

Java网络/套接字编程教程

推荐文章

电子商务网站的Flexstore或JQuery

电子商务网站的Flexstore或JQuery

推荐文章

基于用户单元格选择显示SQL结果的宏

基于用户单元格选择显示SQL结果的宏

推荐文章

如何使用属性值作为XML多态类型选择的鉴别器?

如何使用属性值作为XML多态类型选择的鉴别器?

推荐文章

MATLAB:矩阵的预分配产生误差

MATLAB:矩阵的预分配产生误差

推荐文章

使用非MSVC编译器在Windows下打开带有Unicode文件名的fstream

使用非MSVC编译器在Windows下打开带有Unicode文件名的fstream

推荐文章

针对ajax页面的Permalink最佳实践

针对ajax页面的Permalink最佳实践

推荐文章

数据集:xml还是mysql更快?

数据集:xml还是mysql更快?