LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 785|回复: 1

创建引用变量的问题

[复制链接]
发表于 2006-6-5 15:20:41 | 显示全部楼层 |阅读模式
小弟菜鸟一个,正在看北南兄的置顶帖子 perl教程(今天开始看的呵呵),发现创建引用变量那块把我弄糊涂了

以下是教程内容的引用:

引用(1):

#!/usr/bin/perl
$value = 10;
$pointer = $value;
printf "n Pointer Address $pointer of $value n";
printf "n What Pointer *($pointer) points to $$pointern";

结果输出如下:


Pointer Address SCALAR(0x806c520) of 10
What Pointer *(SCALAR(0x806c520)) points to 10

每次运行,输出结果中的地址会有所改变,但可以看到$pointer给出地址,而$$pointer给出$variable的值。

引用(2):

1 #!/usr/bin/perl
2 #
3 # Using Array references
4 #
5 $pointer = @ARGV;
6 printf "n Pointer Address of ARGV = $pointern";
7 $i = scalar(@$pointer);
8 printf "n Number of arguments : $i n";
9 $i = 0;
10 foreach (@$pointer) {
11 printf "$i : $$pointer[$i++]; n";
12 }

运行结果如下:


$ test 1 2 3 4
Pointer Address of ARGV = ARRAY(0x806c378)
Number of arguments : 4
0 : 1;
1 : 2;
2 : 3;
3 : 4;

我知道这和C语言很类似,引用(1)中的$pointer = $value; 这句话不是把value的值赋给pointer变量吗??
引用(2)中的$pointer = @ARGV; 这时变量pointer是数组array的一个引用???还是值为数组个数(3)的一个普通简单变量??

请高手指点一下
 楼主| 发表于 2006-6-5 16:49:17 | 显示全部楼层
自己试验明白了,原来是教程里由于疏忽少写了'\'啊
引用(1)中 应该是$pointer =\$value; 引用(2)中应该是 $pointer = \@ARGV;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表