foreach ( @_ ) {
# $_ 表示数组@_中当前被遍历到的元素.
if ( $_ > $currentMaxCnt ) {
# 如果发现当前数组元素比$currentMaxCnt大,那就将$currentMaxCnt重新赋值为当前
元素。
$currentMaxCnt = $_;
}
}
# 函数返回值为标量$currentMaxCnt.
return $currentMaxCnt;
}
演示代码二(求和):
#!/usr/bin/perl -w
use strict;
# 求一组数的和并打印。
my $s1 = &sumvar(11,22,33);
my $s2 = &sumarg(22,33,44);
my $s3 = &sumgod(11,22,33,44,55);
print "s1=$s1, s2=$s2, s3=$s3n";
# 办法1
sub sumvar {
# 将参数数组的前三个元素值相应地赋给($first, $second, $third)
(my $first, my $second, my $third) = @_;
# 返回其和值。缺点: 如果是求四个参数的和,依然只能给出前三个的和。
return $first + $second + $third;
}
# 办法2
sub sumarg {
# $_[0] 表示参数数组@_的第一个元素。其余类推。
my $first = $_[0];
my $second = $_[1];
my $third = $_[2];
# 返回其和值。缺点: 同sumvar. 只是通过这里学习 $_[0] 这种用法。
return $first + $second + $third;
}
# 办法3, 参数可以任意多。都能求其和。
sub sumgod{
my $s = shift @_;
foreach ( @_ ) {
$s = $s + $_;
}
# 同前面函数max。
return $s;
}
8总结
整理了一下自己觉得用的比较多的一些符号、用法、函数、库之类的,这些都是很基本
的,但是“背熟”了,对提高效率会很有帮助。
数据操作
* $ - 声明与引用用一个scalar的变量
* @ - 声明与引用一个list,但是当访问一个list的成员时,需使用$ListName[index]
* % - 声明与引用一个hash表,但是当访问一个hash的成员时,需要使用$HashName
{key}
特殊变量
* $0 - 当前运行脚本的文件名
* @ARGV - 当前运行脚本的命令行参数列表
* $_ - 默认变量,如循环中的当前变量
* @_ - 函数的输入参数列表
* %ENV - 系统的环境变量
* @INC - Perl的Include路径列表,我们可以往该列表中添加我们自己的目录来方便引
用自定义的库
* $! - 当前系统提示,错误信息
* $^O - 操作系统的名字
* STDIN,STDOUT,STDERR - 输入输出的默认句柄,可以作一定的自定义
* => - 声明一个hash时可以用来明确的表示出key=>value的对应关系
* $^I- 指定备份的文件的后缀名,如此,被修改的文件将会自动以该后缀名保存一个副
本
特殊用法
* &Sub - 调用一个函数,虽然Perl有些规则让你在某些时候可以省略这里的&符号,但
是处于一致性考虑,所以自定义的函数的调用,我一律采用此种方式。
* $# - 用来取得模个数组的最大index, 一般情况下,也可以用-1来表示最后一个元素
的index的
* qw() - 快速声明一个字符串数组,可以省略那些烦人的引号









