perl子例程

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";
        }


    }
}

你可能感兴趣的:(unix,perl,subroutine)