申明hash变量:
my %Student;
#其中Student为学生哈希,Key值为学生学号,对应的hash值为分数
示例1:
直接赋值:%Student = {"200711", 90, "200712", 85, ..., "200730",66};
或格式为:%Student = {"200711"=>90,
其中用第二种格式时注意}前的逗号。
示例2:
#得到所有keys,顺序取决于hash函数,或者说是乱序
my @all_keys = keys %Student;
# 所有键值,是按hash的值从大往小排列的。值的比较是数字比较(比如说,10 > 9)
my @all_keys = sort{$Student{$b}<=>$Student{$a}} (keys %Student);
# 所有键值,是按hash的值从小往大排列的。值的比较是数字比较
my @all_keys = sort{$Student{$a}<=>$students{$b}} (keys %Student);
# 所有键值,是按hash的值从小往大排列的。值的比较是字符串比较
#(比如说,'abc' < 'bcd')
my @all_keys = sort{$Student{$a} cmp $Student{$b}} (keys %Student);
示例3:给出已知所有Key值(存于一个txt文本中),来建立一个只有Key值,没有对应的hash值的哈希表:
#!/usr/bin/perl -w
use strict;
open fp1,"Student_num.txt";
my @data1 = <fp1>;
my %Student;
foreach(@data1)
{
}
foreach(@data1)
{
}
若输入文本Student_num.txt为:
200701
200702
200703
则以上程序输出为:
200701
200702
200703