理解引用和引用的语法
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 ;