Help for this page

Select Code to Download


  1. or download this
    my @look = <DATA>;
    my @out = sort { (split '\|', $a, 12)[4] <=> (split '\|', $b, 12)[4] }
    + @look;
    foreach my $line (@out) { 
    ...
    accu-b|36|0|0|103|0|38|0|0|0|0|2|0|
    accua|35|0|0|27|0|37|0|0|0|0|1|0|
    [...]
    
  2. or download this
    ## tested
    my @out =
        map { substr $_, 6 }   ## hardcoded "6" here...
        sort
        map { my $val = (split /\|/)[4]; sprintf "%06d$_",$val }  ## ... a
    +nd here
        <DATA>;
    
  3. or download this
    my @d = <DATA>; my @e; my @key = map { (split /\|/)[4] } @d;
    use Benchmark qw/cmpthese/;
    cmpthese (4e4, {
    ...
        raw    => sub { @e = sort { (split '\|', $a, 12)[4] <=> (split '\|
    +', $b, 12)[4] } @d; },
        ambrus => sub { @e = @d[ sort { $key[$a] <=> $key[$b] } 0 .. @d - 
    +1 ]; },
    });
    
  4. or download this
              Rate    raw    grt ambrus
    raw     2742/s     --   -58%   -92%
    grt     6547/s   139%     --   -80%
    ambrus 33058/s  1106%   405%     --