perl scalar reference小问题

楼主: dragonforce3 (瑶)   2018-05-25 15:53:54
请教大家一个关于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理解错误吗?
谢谢帮忙!
作者: flu (Crazy Rhythm)   2018-05-25 17:04:00
把$project改成以our宣告就可以了$$token那一行使用到的symbolic reference只能用来对package variable起作用以my宣告的变量不会出现在symbol table里 所以symbolic ref的方式找不到你要的那个变量说到底还是加上 use strict; use warnings; 比较能避开类似这种看似细微但是出错时又不是能一眼看透的错误
作者: cutekid (可爱小孩子)   2018-05-25 18:02:00
推 f 大解释,长知识了。
楼主: dragonforce3 (瑶)   2018-05-26 06:25:00
感谢f大 谢谢 功力又更深一层了

Links booklink

Contact Us: admin [ a t ] ucptt.com