Perl 教程 在线

2030Perl 数组

关于数组排序的总结

sort 函数遍历原始数组的每两个元素,把左边的值放入变量 $a,右边的值放入变量 $b。 然后调用比较函数。如果 $a 的内容应该在左边的话, 比较函数会返回 1;如果 $b 应该在左边的话,返回 -1,两者一样的话,返回 0

依据数值大小排序:

my @line=qw /1 2 34 9 12 4 3 8 67 53 1 42 1 17 3 0/;
print "sorted numbers: ";
foreach my $item(sort {$a <=> $b} @line){
    print "$item ";
}

代码中使用 <=> 比较函数,表示依据数值字面大小排序,此为升序,若要降序排序,仅需调换标量 $a$b 位置即可。

依据第一个字符 ASCII 值排序: 将上述代码中的比较函数改为 cmp 函数即可,这也是 perl 默认的比较函数。

2029Perl 数组

splice()函数小结

1. 替换数组元素。

splice(@ARRAY,OFFSET,LENGTH,LIST)
  • @ARRAY:要替换的数组。
  • OFFSET:起始位置。
  • LENGTH:替换的元素个数。
  • LIST:替换元素列表。

示例:

@a = (1..5);
@b = (a..h);
print "原始  @a\n";
splice(@a , 2 , 2 , @b);
print "插入  @a\n";

结果:

原始  1 2 3 4 5
插入  1 2 a b c d e f g h 5

2. 删除。

splice(@ARRAY,OFFSET,LENGTH)
  • @ARRAY:要删除的数组。
  • OFFSET:起始位置。
  • LENGTH:删除的元素个数。

示例:

@a = (1..20);
print "原始  @a\n";
splice(@a , 2 , 6);
print "删除  @a\n";

结果:

原始  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
删除  1 2 9 10 11 12 13 14 15 16 17 18 19 20

3. 删除到末尾。

splice(@ARRAY,OFFSET)
  • @ARRAY:要删除到结尾的数组。
  • OFFSET:起始位置。

示例:

@a = (1..20);
print "原始  @a\n";
splice(@a , 2);
print "删除  @a\n";

结果:

原始  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
删除  1 2

2028Perl 基础语法

EOF在这里通俗讲就是一个标记,他用来标记一段文字(一般都是多行的,省得编码麻烦,用"<<"加上一个标记就可以把一大段代码存入到一个变量中去了)

$a=<< “EOF” 的意思就是说:下一行开始,直到遇见“EOF”为止,所有的字符都按照指定的格式存入变量a中。

你可以用EEE,MAMA等等其他的名字都可以,就是一个标记而已。他的作用就是简化输入。

2027Perl 基础语法

perl 中的单引号和双引号:

(1)双中有双,单中有单都需要 \ 转义。

(2)双中有单或单中有双均不需要转义。

(3)单引号直接了当,引号内是什么就显示什么,双引号则需要考虑转义或变量替换等。

2026Perl 环境安装

在 perl 的路径上也可以加上 -w,可以显示程序中出现的一些警告,尽管可能不影响程序的执行结果,方便我们修改我们的程序,例如:

#!/usr/bin/perl -w

#!/usr/bin/perl 需要参考自己的 perl 路径。