案例;有5个数3 5 10 4 6 求出一个最大值;

代码如下:

#!/usr/bin/perl
$maximum=&max(3,5,10,4,6);
sub max {
        my ($max_so_far) = shift @_;
        foreach (@_) {
        if ($_ > $max_so_far) {
                $max_so_far = $_;
        }
        }
        $max_so_far;
}
print "$maximum\n";

执行后

[root@centos lansgg]# ./d.pl
10

上面的程序代码使用了一般称为“高水线(high-watermark)”的算法;大水过后,在最后一浪消退时,高水线会标示出所见过的最高水位。本例中,$max_so_far记录了高水线,所以最后$max_so_far变量中的值就是我们要找的最大值。