珀尔 |排序()函数
Perl 中的 sort()函数用于使用或不使用排序方法对列表进行排序。该方法可由用户以子程序或块的形式指定。如果未指定子程序或块,则它将遵循默认的排序方法。
Syntax:
sort List
sort block, List
sort Subroutine, List
Returns: sorted list as per user’s requirement
示例 1:
#!/usr/bin/perl
@array1 = ("a", "d", "h", "e", "b");
print "Original Array: @array1\n";
print ("Sorted Array: ", sort(@array1));
输出:
Original Array: a d h e b
Sorted Array: abdeh
示例 2:使用 Block 进行排序
#!/usr/bin/perl -w
use warnings;
use strict;
# Use of Block to sort
my @numeric = sort { $a <=> $b } (2, 11, 54, 6, 35, 87);
print "@numeric\n";
输出:
2 6 11 35 54 87
在上面的代码中,block 用于排序,因为 sort()函数使用字符对字符串进行排序,但在数字上下文中,不可能遵循相同的。因此,块用于简化排序。示例 3:使用子程序进行排序
#!/usr/bin/perl -w
use warnings;
use strict;
# Calling subroutine to sort numerical array
my @numerical = sort compare_sort (2, 11, 54, 6, 35, 87);
print "@numerical\n";
# function to compare two numbers
sub compare_sort
{
if($a < $b)
{
return -1;
}
elsif($a == $b)
{
return 0;
}
else
{
return 1;
}
}
输出:
2 6 11 35 54 87