免费注册 查看新帖 |

Chinaunix

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

请教关于引用的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-05 10:50 |只看该作者 |倒序浏览
如下一段代码
#!/usr/bin/perl
package Test;
use strict;
use warnings;

sub new {
        my $class = shift;
        my $self = {
                ref_array => [],
                name => "",
        };
        bless($class, $self);
        return $self;

}

package main;
my $test = Test->new();
my @array;
$test->ref_array = \@array;

my $ref = $test->ref_array;
push(@array, 1, 2, 3, 4);

print @$ref;

期望输出1,2,3,4的数组,但实际什么都没有。大家能帮忙看看是什么问题吗?想了很久百思不得其解。

论坛徽章:
0
2 [报告]
发表于 2011-02-05 19:21 |只看该作者
是不是想这样

#!/usr/bin/perl
package Test;
use strict;
use warnings;

sub new {
        my $class = shift;
        my $self = {
                ref_array => [],
                name => "",
        };
        bless( $self,$class);
        return $self;

}

package main;
my $test = Test->new();
my @array;
$test->{ref_array} = \@array;

my $ref = $test->{ref_array};
push(@array, 1, 2, 3, 4);

print @$ref;

论坛徽章:
0
3 [报告]
发表于 2011-02-05 20:01 |只看该作者
try:
bless($class, $self);=>bless($self,$class);
$test->ref_array = \@array;
my $ref = $test->ref_array;
=>
$test->{'ref_array'}=\@array;
my $ref = $test->{'ref_array'};

论坛徽章:
0
4 [报告]
发表于 2011-02-06 00:16 |只看该作者
本帖最后由 yakczh 于 2011-02-06 00:28 编辑

好多的bless

$boy="张三";

bless $boy ,"好人";
$boy->做好事();

bless $boy ,"流氓";
$boy->耍流氓();

bless就是春晚的魔术

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
5 [报告]
发表于 2011-02-06 11:40 |只看该作者
好多的bless

$boy="张三";

bless $boy ,"好人";
$boy->做好事();

bless $boy ,"流氓";
$boy->耍 ...
yakczh 发表于 2011-02-06 00:16



    只有 引用 才能 bless 。而且 bless 无非就是加个标签,这算是在 Perl 的基本数据类型之上实现 OO 最简单的方法了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP