引用像 C 中引用其他变量的指针。使用 \
操作符创建引用。
my $sref = \$scalar;
my $aref = \@array;
my $href = \%hash;
my $cref = \&subroutine;
引用指向的事物即其所指。
使用合适的印记解引用,首选使用花括号。
my $other_scalar = ${$sref};
my @other_array = @{$aref};
my %other_hash = %{$href};
&{$cref} # Call the referent.
要访问数组和哈希引用,使用 ->
操作符。
my $stooge = $aref->[1];
my $stooge = $href->{Curly};
ref
查检类isa
来询问一个对象是否继承自一个类ref
isa
是 UNIVERSAL 包的一部分,因此你可以在对象上调用它my $mech = WWW::Mechanize->new;
print "ok\n" if $mech->isa('LWP::UserAgent');
子例程能被赋给变量,并被调用,以允许代码引用被传递及使用。这将十分有用, 比如编写需要执行所提供代码的子例程。
my $casefix = sub { return ucfirst lc $_[0] };
my $color = $casefix->("rED");
print "Color: $color\n"; # prints Red