Chinaunix

标题: 学习引用竟然可以引用程序块!! [打印本页]

作者: tsie_chen    时间: 2010-12-16 00:07
标题: 学习引用竟然可以引用程序块!!
#use strict;

sub say {
   print @_;
}



        my %book1 = (
                                                "书名" => "谋杀与创造之时" ,
                                                "作者" => "劳伦斯",
                                                "价格" => "23",
                                        );

        my %book2 = (
                                                "书名" => "繁花将尽" ,
                                                "作者" => "劳伦斯",
                                                "价格" => "33",
                                        );
       
        my @books = (\ %book1,\ %book2);
    for (@books) {
                 for my $key(keys %{$_}) {
                 say "$key = ${$_}{$key}\n\n";
                 }
    }



                                                                                               
my $say = ${say('这里是say()!!!')} ;           #引用say();

say $say;

<STDIN>;
作者: cinanine    时间: 2010-12-16 00:59
竟然可以
作者: 2gua    时间: 2010-12-16 08:47
这啥意思啊?
作者: guap514    时间: 2010-12-16 08:57
加个 use warnings; 你就知道不可以了
作者: tsie_chen    时间: 2010-12-17 16:50
开始被吓到了。。。

perl确实可以引用程序块!

use strict;

#直接付值
my $a =sub {
        sub hi {print "这是a\n";}
        sub a {print "你可以叫我,啊~~\n";}

};

sub b {
print  @_;
}

                      
$a=>hi;
$a=>a;


$b = \&b;                           #引用

$b->("原来你是啊啊!");

<STDIN>;


#是不是有点在用模组
作者: zhlong8    时间: 2010-12-17 18:32
匿名函数……

$a=>hi; 不就是 hi
作者: tsie_chen    时间: 2010-12-17 18:34
本帖最后由 tsie_chen 于 2010-12-17 18:38 编辑



可不可以这么说,perl 是通过引用来实现面向函数和对象的。
作者: x9x9    时间: 2010-12-17 23:13
本帖最后由 x9x9 于 2010-12-17 23:15 编辑
可不可以这么说,perl 是通过引用来实现面向函数和对象的。
tsie_chen 发表于 2010-12-17 18:34


是这样的。但不仅是对函数的引用,还包括所有的引用。然后bless一下实现。建议深入读下Intermediate Perl。
作者: tsie_chen    时间: 2010-12-18 16:08
有國文版嗎?
作者: x9x9    时间: 2010-12-18 21:21
有國文版嗎?
tsie_chen 发表于 2010-12-18 16:08



    你不是大陆人吗?
作者: tsie_chen    时间: 2010-12-18 22:16
本帖最后由 tsie_chen 于 2010-12-18 22:30 编辑

。。。。。!?
作者: kingwmj    时间: 2010-12-19 11:11
perl的引用很复杂,特别是对我这种任何语言都是0基础的人。
作者: tsie_chen    时间: 2010-12-19 15:47
啊,中学的时候,你没学过BASIC,可是必修课!?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2