perl 基本语法介绍

2019-10-01 14:23:59于海丽

# 下面是print的特殊用法,学自shell script的用法:
print<XXX

这招叫做 here document,XXX可以是你取的任何标识符,在标识符之间的字都会按照你所写的样子输出,就像标签一样。而当一行的开头是XXX你取的这个标识符时,才会停止输出。
XXX

Perl 也有和 C 一样以 "" 开头的特殊字符:
t    tab
n    newline
r    return
f    form feed
b    backspace
a    alarm(bell)
e    escape
33  octalchar
x1b  hex char
c[   control char
l    lowercase next char
u    uppercase next char
L    lowercase till E
U    uppercase till E
E    end case modification
Q    quoteregexp metacharacters till E

另外需要说明的是 Perl 融合了unix shell script的使用惯例,以双引号("")括起来的字符串会先经过展开,但反斜线()后面的字符则不展开,当作一般字符看待。而以单引号('')括起来的字符串完全不会展开,以反单引号(``)括起来的字符串会把它当作命令列指令一样执行,等于system()一样。初学者常常会搞混,但习惯之后就会觉得不这样分清楚反而不行哩,举个例吧:
$x="ls -l";
print "$x";             # Output ls -l
print "$x";            # Output $x
print '$x';             # Output $x
print `$x`;             # Output files in this directory

函数
1. Perl函数
通过 & 调用.

2. Perl参数
Perl天然支持可变数目个参数。
在函数内部,所有参数按顺序放在数组 @_ 中,在函数内部,$_[0] 表示函数的第一个

参数,其余类推。

3. shift
shift 后跟一个数组,表示将数组的第一个值返回。数组也被改变,其第一个元素被弹

出。

演示代码一(求最大值):
#!/usr/bin/perl -w
use strict;
# 调用函数max,取得一组数值的最大值,并输出。
my $maxCnt = &max(11,22,33);
print "maxCnt=$maxCntn";

sub max {
# 采用遍历算法。先将参数中的第一个值赋给$currentMaxCnt。
# @_ 是默认的包含本函数所有参数 [如(11,22,33)]的数组。
# shift @_ 有两个结果: 1. 将数组 @_ 中的第一个值做为返回值(赋给了

$currentMaxCnt). 2. 将@_数组第一个值弹出[此后@_的值变为(22,33)].
my $currentMaxCnt = shift @_;
# 函数中使用shift时,@_可以省略。上面代码也可以写成这样。
#  my $currentMaxCnt = shift;

# 遍历整个@_数组。