在Perl中,如何使用出现在第一个冒号(:)之前的数字对记录进行排序?

ali*_*cee 2 sorting perl records

我在Perl中有以下数据序列:

143:0.0209090909090909 
270:0.0909090909090909 
32:0.0779090909090909 
326:0.3009090909090909
Run Code Online (Sandbox Code Playgroud)

请问,我怎样才能根据冒号前的数字对它们进行排序,以此作为输出?

32:0.0779090909090909
143:0.0209090909090909
270:0.0909090909090909  
326:0.3009090909090909
Run Code Online (Sandbox Code Playgroud)

tad*_*dmc 7

那里有冒号没关系.

Perl将字符串转换为数字的规则就是做正确的事:

#!/usr/bin/perl
use warnings;
use strict;

my @nums = qw(
    143:0.0209090909090909 
    270:0.0909090909090909 
    32:0.0779090909090909 
    326:0.3009090909090909
);

{ no warnings 'numeric';
    @nums = sort {$a <=> $b} @nums;
}

print "$_\n" for @nums;
Run Code Online (Sandbox Code Playgroud)