zhangpengfei00 发表于 2015-12-28 08:42:37

perl排序

  对如下ip进行排序:
  134.102.9.87
134.102.5.43
134.102.1.2
134.102.6.7
  可以使用如下perl代码实现:



1 use strict;
2 use warnings;
3 use 5.14.2;
4
5 open (my $fh, "<ips.txt") or die "$!";
6 my @ips;
7 my $i;
8 while(<$fh>){
9   $_ =~ s/^\s+|\s+$//g;
10   $_ =~ s/\n\r|\n|\r//g;
11   $ips[$i++] = $_;
12 }
13
14 my @r;
15 my @r2;
16
17 my @ips_sorted = sort {
18               @r= (split/\./, $a) and
19               @r2 = (split/\./, $b) and
20               $r gt $r2 or
21               $r gt $r2 or
22               $r gt $r2 or
23               $r gt $r2
24               } @ips;
25 foreach my $key (@ips_sorted){
26   say $key;
27 }
28 close $fh;
  
页: [1]
查看完整版本: perl排序