bycj.net
当前位置:首页 >> pErl sort vAluE >>

pErl sort vAluE

my %hash; my @keys=sort { $hash{$a} $hash{$b} } keys %hash; 这样就可以了,直接循环用下面的。 foreach my $key ( sort { $hash{$a} $hash{$b} } keys %hash) { }

my @keys = sort { $h{$b} $h{$a} } keys %h; #sort the hash table 上面的那一行就是排序的代码。程序如下: #!/usr/perl/bin use strict; use Data::Dumper; my %h=( "Alex"=>24, "Sam"=>25, "Bob"=>30, "Andy"=>11, "Wills"=>35, "Mary"=>16,...

这属于perl的高级排序, {$a $b}相当于是子程序,相当于sub by_sort{if($a$b){1}else{0}},后面的数组是参数,每次传两个元素的参数,且反复调用该子程序,直到数组元素传完为止。

哈希按键值排序输出: perl -e '%h = ( 11.0 => "a" , 22.0 => "b" , 5 => "c" , 19 => "d" ) ;foreach $k ( sort{$a$b} (keys %h) ){ print "$k => $h{$k}\n";}'

先把文件每行split分开 然后做个哈希,以第三列为键,整行为值 接下来用perl里的sort函数排序哈希输出即可

如果你是linux环境的话,可以直接用sort命令进行排序 sort -k 2nr your_file.txt > res.txt 如果没有的话用下面的perl脚本也可以实现 注:这个代码的结果是输出在STDOUT上的 #!/usr/bin/env perl use strict;use warnings;my $file = "file.txt"...

挺有意思的一个问题,以前还没注意过。我查了一下perldoc,有一段话: "sort() returns aliases into the original list, much as a for loop's index variable aliases the list elements. That is, modifying an element of a list returned b...

首先, by_number 并没有读取过 @paixu, 而是 sort 赋值给了 $a 和 $b, 再调用 by_number 去解释 $a 和 $b. 所以, 如果你在 by_number 入面 print "@_", 你是会得到空值的. 也所以, 你写的 by_number 要跟著 sort 所给你的规范, 只能回传 -1 0 和...

呃,没大明白,增加键值对,意思是这样么: my %hash = (1,2,3,4); #初始化 my $key = 'a'; my $value = 'b'; $hash{$key} = $value; #说的是这个? 对哈希的values进行排序, my @sort_values = sort(values %hash);

@a=qw(1 3 2 8 7 5 4 10 9); @a=sort {$a$b}@a; print "the max number=$a[0]\nthe min number=$a[$#a]\n";

网站首页 | 网站地图
All rights reserved Powered by www.bycj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com