理解引用和引用的语法

1.创建引用

创建引用的方法很多,最简单的就是用反斜杠操作符作用于一个变量

my $scalar_ref = \$a ;
my $array_ref  =  \@a;
my $hash_ref  =  \%a;
my $sub_ref    =  \&a;
my $glob_ref   =  \*a;

而对每个列表取引用的话,返回的是列表中每个元素的引用组成的新列表,而非列表本身的引用。

my $ref4 = \(1 .. 3);  #指向数据3

匿名数组的构造用方括号

my $a_ref = [ 1 .. 3 ] ;

而类似的,匿名散列的构造语法使用花括号,向下面这样:

my $h_ref = {anonymous => 'user'};
$h_ref->{'joe'} = 'bloe';
$href->{'john'} = 'public';

定义子程序时如果没有给出名字,则返回匿名子程序引用。

my $greetings = sub {print  "hello,world!\n"};
$greetings->();

 

2.使用引用

不管是何种类型的引用,Perl都会像处理标量一样处理它们。

引用其实还包含有目标对象的类型信息,我们可以用ref操作符获得该信息。

my $s_ref = \1 ;
print ref $s_ref ;

#而匿名子程序的引用,打印出来的就是CODE

my $c_ref  = sub {'code!'};
print ref $c_ref ;
posted @ 2013-04-25 11:01  新闻官  阅读(314)  评论(0编辑  收藏  举报