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


    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Perl语言中,例程subroutine)是一种可重复使用的代码块,可以在程序中被多次调用。使用例程可以提高代码的可读性和可维护性,也可以减少代码的重复性。 下面是一个简单的例,演示了如何定义和使用例程: ```perl # 定义一个例程 sub greet { my ($name) = @_; print "Hello, $name!\n"; } # 调用例程 greet("Alice"); greet("Bob"); ``` 这个程序定义了一个名为`greet`的例程,它接收一个参数`$name`,并输出一句问候语。程序中通过调用`greet`例程来向不同的人打招呼。 输出结果为: ``` Hello, Alice! Hello, Bob! ``` 在Perl中,例程的参数传递是通过`@_`数组实现的。在例程中,可以通过`my`声明来定义局部变量,例如上面的例中的`$name`变量。 在调用例程时,可以使用括号或者不使用括号。例如,下面的代码是等价的: ```perl greet("Alice"); greet "Alice"; ``` 在Perl中,例程可以返回值,也可以通过`return`语句来提前终止例程的执行。例如,下面是一个计算平方的例程: ```perl sub square { my ($x) = @_; return $x * $x; } my $result = square(5); print "The square of 5 is $result\n"; ``` 输出结果为: ``` The square of 5 is 25 ``` 在这个例中,`square`例程接收一个参数`$x`,并返回`$x`的平方。在主程序中,通过调用`square`例程来计算5的平方,并输出结果。 总之,通过例程Perl程序可以更加模块化和可读性,提高代码的复用性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值