免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4266 | 回复: 10

Perl引用的一个问题 [复制链接]

论坛徽章:
0
发表于 2007-09-24 15:59 |显示全部楼层
a = (1,2,3,4);
$array_header = "sym_ref_array";
my $i,$j;
for($i = 0; $i < 3; $i++)
{
        $array_name=$array_header.$i;
        for($j = 0; $j < 4; $j++)
       {
                $$array_name->[$j] = $a[$j] + $i;
       }
}

生成的数组sym_ref_array0,sym_ref_array1,sym_ref_array2,为什么只能用$sym_ref_array0->[3]这种形式引用相应数据元素,而不能使用数组@{$sym_ref_array0},如:print join "," @{$sym_ref_array0}

论坛徽章:
0
发表于 2007-09-24 17:26 |显示全部楼层
饿。。。偶咋看不懂你写的,某非偶太菜。。
$array_name感觉是个标量啊
$$array_name->[$j],咋还能这么用啊,这感觉是个数组啊

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2007-09-24 17:31 |显示全部楼层
可以的吧。

BTW:符号引用不推荐使用。

论坛徽章:
0
发表于 2007-09-24 17:33 |显示全部楼层
原帖由 flw 于 2007-9-24 17:31 发表
可以的吧。

BTW:符号引用不推荐使用。

是不是上次提到的那个帖子
如果这样使用,use strict就会报警那个?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2007-09-24 17:39 |显示全部楼层
原帖由 perljoker 于 2007-9-24 17:33 发表

是不是上次提到的那个帖子
如果这样使用,use strict就会报警那个?

对。
use strict 缺省情况下会阻止符号引用。

论坛徽章:
0
发表于 2007-09-25 10:23 |显示全部楼层

回复 #3 flw 的帖子

谢谢flw老大提醒,我只是试一下看看自己理解的对不对,但上面代码在我这儿用不了,是语法的问题?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2007-09-25 10:36 |显示全部楼层
原帖由 shappen 于 2007-9-25 10:23 发表
谢谢flw老大提醒,我只是试一下看看自己理解的对不对,但上面代码在我这儿用不了,是语法的问题?

如果是这个目的的话,你就不应该写这么复杂的程序。

$array_header = "sym_ref_array";
$array_name = $array_header . '0';
$array_name->[0] = 10;
$$array_name[1] = 20;
print "@$array_name";

足以说明问题。

论坛徽章:
0
发表于 2007-09-25 11:03 |显示全部楼层

回复 #7 flw 的帖子

请教
$array_name = $array_header . '0';
这一句有什么用啊?好像不写也可以的

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2007-09-25 11:05 |显示全部楼层
原帖由 perljoker 于 2007-9-25 11:03 发表
请教
$array_name = $array_header . '0';
这一句有什么用啊?好像不写也可以的

这一句用来演示如何动态地生成一个变量。
也就是说,生成的数组的名称是由两部分组成的,并且是运行时可以变化的(比如从配置文件中读取、或者自动递增,等等)

论坛徽章:
0
发表于 2007-09-25 11:17 |显示全部楼层

回复 #9 flw 的帖子

恩,刚才把一些情况试验了下
看来符号引用还是有好用的地方,等于本身多存了一个信息,而不是地址
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP