免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: dpsuffix
打印 上一主题 下一主题

perl的指针,没搞明白过,有问题请教 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
11 [报告]
发表于 2008-06-27 18:29 |只看该作者
原帖由 gregorian 于 2008-6-27 18:22 发表
说明他今天心情很好

不,说明我无法判断楼主是不是临时用户。

我对真正的 Perl 新手都是很友好的,
因为我觉得他们既然想要学 Perl,
那么在开始的时候就需要我拉一把。
不友好的只是临时用户,
因为我觉得他们都是叼一嘴就跑,饿了再来。
我不喜欢帮他们做作业或者挣工资。

BTW:作为 ChinaUnix 的版主,
我发现很多人都喜欢观察我,
但是很多人观察我观察得不够深入。

[ 本帖最后由 flw 于 2008-6-27 19:15 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2008-06-27 23:22 |只看该作者

  1. #!/usr/bin/perl
  2. @array = ('a','b','c');
  3. $tar->{arr} = [ @array ];

  4. foreach my $item ( @{ $tar->{arr} } )
  5. {
  6.         print "$item\n";
  7. }
复制代码

用【 】明确告诉他这里是个散列环境,也可以。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
13 [报告]
发表于 2008-06-27 23:32 |只看该作者
原帖由 撒哈拉里的鱼 于 2008-6-27 23:22 发表

#!/usr/bin/perl
@array = ('a','b','c');
$tar->{arr} = [ @array ];

foreach my $item ( @{ $tar->{arr} } )
{
        print "$item\n";
}

用【 】明确告诉他这里是个散列环境,也可以。

你还没学通:
1,“散列环境”这个词用的不对。
2,\@array 和 [@array] 不等效。

论坛徽章:
0
14 [报告]
发表于 2008-06-27 23:52 |只看该作者
原帖由 flw 于 2008-6-27 18:29 发表

不,说明我无法判断楼主是不是临时用户。

我对真正的 Perl 新手都是很友好的,
因为我觉得他们既然想要学 Perl,
那么在开始的时候就需要我拉一把。
不友好的只是临时用户,
因为我觉得他们都是叼一嘴 ...

版主受人关注是很正常滴~~~哈哈哈,
我好像还是第一次见你这么耐心的哈

另,强烈BS作业贴。还有一种用户,当天注册,一注册就扔个问题那种~

[ 本帖最后由 lewphee 于 2008-6-28 00:07 编辑 ]

论坛徽章:
0
15 [报告]
发表于 2008-06-28 07:25 |只看该作者
原帖由 flw 于 2008-6-27 23:32 发表

你还没学通:
1,“散列环境”这个词用的不对。
2,\@array 和 [@array] 不等效。


版主说的对啊

1。perl 中只有 scalar context 和 list context。
2。[@array] 建立了一个匿名数组引用,\@array 是对 @array 引用。

论坛徽章:
0
16 [报告]
发表于 2008-06-28 10:32 |只看该作者
呵呵,是很多这种人,注册问个问题就跑了。。。偶还比较有一些时间,能经常进来看看,还能偶尔跟个贴,不过,发现高手太多,需要学习啊。。。
BTW:斑竹不受人关注是不可能的。。。想想看,就像一个班的班主任一样。。。

论坛徽章:
0
17 [报告]
发表于 2008-06-30 11:01 |只看该作者

  1. $tar->{arr} = \@array
  2. $tar->{arr}存的是@array的引用?
  3. 能不能把@array复制一份给$tar->{arr}?
复制代码

论坛徽章:
0
18 [报告]
发表于 2008-07-01 14:22 |只看该作者

回复 #17 dpsuffix 的帖子

存的就是引用,引用是个标量

  1. $tar->{arr} ="@array";
复制代码

注意,后面的引号不能少

论坛徽章:
0
19 [报告]
发表于 2008-07-01 14:48 |只看该作者
原帖由 churchmice 于 2008-7-1 14:22 发表
存的就是引用,引用是个标量

$tar->{arr} ="@array";

注意,后面的引号不能少


你这样做跟 lz 的想法是不一样的。容易误导 lz。
这样是生成了一个 字符串。

而 lz 是想用 $tar->{arr} 来存一个 @array。

$tar->{arr} 是一个 scalar 变量,不能存 数组 的。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
20 [报告]
发表于 2008-07-01 15:01 |只看该作者
原帖由 cobrawgl 于 2008-7-1 14:48 发表


你这样做跟 lz 的想法是不一样的。容易误导 lz。
这样是生成了一个 字符串。

而 lz 是想用 $tar->{arr} 来存一个 @array。

$tar->{arr} 是一个 scalar 变量,不能存 数组 的。

存引用就可以了。
[ @array ] 可以复制 @array 生成一个匿名数组,并返回其引用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP