免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2269 | 回复: 5
打印 上一主题 下一主题

请教perl问题 [复制链接]

论坛徽章:
2
技术图书徽章
日期:2014-02-24 10:31:04技术图书徽章
日期:2014-03-20 16:11:43
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-03-18 10:16 |只看该作者 |倒序浏览
代码如下
  1. #!/usr/bin/perl

  2. sub func {print "test\n";}

  3. $self = {};

  4. $self->{func} = \&func;

  5. &{$self{func}};
复制代码
请问第7行错在哪?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2015-03-18 10:40 |只看该作者
    #!/usr/bin/perl

    sub func {print "test\n";}

    $self = {};

    $self->{func} = \&func;

    &{$self->{func}};
是第9行出问题了.

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2015-03-18 10:42 |只看该作者
或者你也可以改成这个样子:
    #!/usr/bin/perl

    sub func {print "test\n";}

    $self{func} = \&func;

    &{$self{func}};

论坛徽章:
2
技术图书徽章
日期:2014-02-24 10:31:04技术图书徽章
日期:2014-03-20 16:11:43
4 [报告]
发表于 2015-03-18 11:01 |只看该作者
为什么当用$self->{func} = \&func;这个的时候,要用&{$self->{func}};
而用$self{func} = \&func;的时候,要用  &{$self{func}};
回复 3# ntwarren


   

论坛徽章:
2
技术图书徽章
日期:2014-02-24 10:31:04技术图书徽章
日期:2014-03-20 16:11:43
5 [报告]
发表于 2015-03-18 11:03 |只看该作者
或者你可以告诉我从perl的哪些章节看相关的内容。3q
回复 3# ntwarren


   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2015-03-18 11:48 |只看该作者
具体你可以看programming perl 4th 第8章.
简单的说,$self->{func}是指$self存的是引用,相当于c语言的指针,是一个地址,一个hash的地址.perl不会自动帮你解引用,所以你调用的时候就要自己解,正如你看到的,语法也是和c语言一样.
$self{func}说明self本身就是一个hash的名字,所以不需要角引用就可直接取.



回复 3# ntwarren


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP