本文我们学习如何用Perl对字符串或者数字数组进行排序。
Perl有个内置函数叫做sort毫无疑问的可以排序一个数组。 其最简单的形式是传递一个数组,它会返回排序后的元素组成的数组。@sorted = sort @original。
基于ASCII码排序
复制代码 代码如下:
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;
use Data::Dumper qw(Dumper);
my @words = qw(foo bar zorg moo);
say Dumper \@words;
my @sorted_words = sort @words;
say Dumper \@sorted_words;
上边的例子将会打印
复制代码 代码如下:
$VAR1 = [
‘foo’,
‘bar’,
‘zorg’,
‘moo’
];
$VAR1 = [
‘bar’,
‘foo’,
‘moo’,
‘zorg’
];
第一个输出显示了排序前的数组,第二个是排序后的。
这是最简单的情形,但是可能未必是你想要的。 比如,如果一些单词以大写字母开头怎么办?
复制代码 代码如下:
my @words = qw(foo bar Zorg moo);
@sorted_names里的结果将是:
$VAR1 = [
‘Zorg’,
‘bar’,
‘foo’,
‘moo’
];