2019独角兽企业重金招聘Python工程师标准>>>
sub 子例程名($$)指定两个标量的参数
(@$)指定一个数组
按引用调用
符号引用 typeglob
类似于UNIX文件系统中的软链接
星号(*)适用于任意类型的变量,包括标量,数组,散列,文件句柄和子例程等
选择性别名和反斜杠运算符
*array = \@array ;
*scalary = \$scalary;
*hash = \%hash;
*func = \&subroutine;
硬引用
通常又称为指针
是含有其他变量地址的标量型变量,通过反斜杠运算符来创建指针。打印指针可以看见十六进制的地址
下面是我写的一个小例子,是书上的习题
use strict;
my %hotels = ("Pillowmint" => "5",
"Buxton Suites" => "5",
"The Middletonian" => "3" ,
"Notchbelow" => "4" ,
"Rancho El Cheapo" => "1",
"Pile Inn" => "2");
printstar(\%hotels);
sub printstar {
my $ref = shift;
my @keys = sort {$ref->{$b} <=> $ref->{$a}} keys %$ref;
foreach (@keys) {
if($ref->{$_} eq "5") {
print "$_|*****\n";
} elsif($ref->{$_} eq "4") {
print "$_|****\n";
} elsif ($ref->{$_} eq "3") {
print "$_|***\n";
} elsif ($ref->{$_} eq "2") {
print "$_|**\n";
} else {
print "$_|*\n";
}
}
}