您的位置:首页 > 其它

Perl语言入门-第六章-哈希-习题

2012-01-16 11:16 155 查看
1. 题目



2. 代码与输出

ch6-family-name.pl

1 #-----------------------------------------------------------#
2 # Source: Learning Perl, chapter6, exercise-1
3 # Date: 2012-01-16
4 # Author: xiaodongrush
5 #-----------------------------------------------------------#
6 use 5.010;
7 %family_name_hash = (
8 "fred" => "flintstone",
9 "barney" => "rubble",
10 "wilma" => "flintstone", );
11
12 while(<>) {
13 chomp;
14 if(exists $family_name_hash{$_} ) {
15 say $_ . "'s family name is : " . $family_name_hash{$_};
16 } else {
17 say $_ . "'s family name not exist in hash";
18 }
19 }
20 #-----------------------------------------------------------#



ch6-wordcount.pl

1 #-----------------------------------------------------------#
2 # Source: Learning Perl, chapter6, exercise-2
3 # Date: 2012-01-16
4 # Author: xiaodongrush
5 #-----------------------------------------------------------#
6 use 5.010;
7 while(<>) {
8 chomp;
9 if(exists $word_hash{$_}) {
10 $word_hash{$_} += 1;
11 } else {
12 $word_hash{$_} = 1;
13 }
14 }
15 foreach(sort (keys %word_hash) ) {
16 say $_ . "\t\t" . $word_hash{$_};
17 }
18 #-----------------------------------------------------------#



ch6-ENV-hash.pl

1 #-----------------------------------------------------------#
2 # Source: Learning Perl, chapter6, exercise-3
3 # Date: 2012-01-16
4 # Author: xiaodongrush
5 #-----------------------------------------------------------#
6 use 5.010;
7
8 $max_key_len = 0;
9 $max_value_len = 0;
10 $len_limit = 35;
11 while(($key, $value) = each %ENV) {
12 if(length($key) < $len_limit && length($value) < $len_limit ) {
13 $max_key_len = $max_key_len > length($key) ? $max_key_len : length($key);
14 $max_value_len = $max_value_len > length($value) ? $max_value_len : length($value);
15 }
16 }
17 $format = "%-" . $max_key_len . "s , %-" . $max_value_len . "s\n";
18 printf $format, "key", "value";
19 foreach(sort(keys %ENV)) {
20 if( (length($_) < $len_limit ) && (length($ENV{$_}) < $len_limit )) {
21 printf $format, $_, $ENV{$_};
22 }
23 }
24 <STDIN>;
25 #-----------------------------------------------------------#



3. 文件

/Files/pangxiaodong/LearningPerl/ch6-answer.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: