- 论坛徽章:
- 1
|
本帖最后由 chenhao392 于 2011-06-11 07:28 编辑
$ref = \$val; #此处赋值的是引用
$val 依次得到 this, is, confused三个字串
$ref得到对应的引用, \this,\is,\confused,即,你每次push到@seeme的引用都是不同的..
而这三个引用的引用计数,最小也是1(保存在了@seeme里,故而没有被删除),请参阅:http://bbs.chinaunix.net/viewthr ... p;extra=&page=1- cat test.pl
- my @array = qw(this is confused);
- my @seeme = ();
- for (@array){
- my $val = $_;
- my $ref = \$val;
- print "$val\t$ref\n";
- push @seeme , $ref;
- }
-
- for (@seeme){
- print "$_\t$_" , "\n" ;#第一个"$_"前还有一个$,莫名的显示为$_
- }
复制代码- perl test.pl
- this SCALAR(0x15fd960)
- is SCALAR(0x15fd858)
- confused SCALAR(0x15fda50)
- this SCALAR(0x15fd960)
- is SCALAR(0x15fd858)
- confused SCALAR(0x15fda50)
复制代码 $符号可以理解为对字串的解引用,例子如下:- cat test2.pl
- my $a=\123;
- my $b=$a;#"$a"前还有一个$,莫名的显示为$a...
- print "$a\t$b\n";
复制代码- perl test2.pl
- SCALAR(0x15028b8) 123
复制代码 即,\为引用,$为解引用.... |
|