作者dragonforce3 (瑶)
看板Perl
标题perl scalar reference小问题
时间Fri May 25 15:53:54 2018
请教大家一个关於scalar ref的小问题
my $project = "aaa";
.
.
.
open(FH,<file);
foreach (<FH>){ # 这行为 project : bbb
my @tmp = split(":",$_);
my $token = $tmp[0]; #值为 project
my $value = $tmp[1]; #值为 bbb
# chomp 以及空白字元处理就不打上来了
$$token = $value;
}
预期 $$token这行应该等效下行
$project = $value
但实际上却不是这样
也分别印出 $project 与 $$token 的位址
确实不同
请问这是我对於 reference理解错误吗?
谢谢帮忙!
-----
Sent from JPTT on my Asus ASUS_Z01HDA.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.246.6.223
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Perl/M.1527234840.A.C7E.html
1F:推 flu: 把$project改成以our宣告就可以了 05/25 17:04
2F:→ flu: $$token那一行使用到的symbolic reference只能用来对 05/25 17:05
3F:→ flu: package variable起作用 05/25 17:06
4F:→ flu: 以my宣告的变数不会出现在symbol table里 所以symbolic ref 05/25 17:08
5F:→ flu: 的方式找不到你要的那个变数 05/25 17:09
6F:→ flu: 说到底还是加上 use strict; use warnings; 比较能避开 05/25 17:10
7F:→ flu: 类似这种看似细微但是出错时又不是能一眼看透的错误 05/25 17:12
8F:→ flu: 可以参考perlref 文件, modern perl(非书名) 05/25 17:21
9F:推 cutekid: 推 f 大解释,长知识了。 05/25 18:02
10F:→ dragonforce3: 感谢f大 谢谢 功力又更深一层了 05/26 06:25