Perl语言入门-第十章-其他控制结构-习题

1. 题目

2. 代码与输出

 1 #-----------------------------------------------------------#
 2 # Source: Learning Perl, chapter10,exercise-1
 3 # Date:   2012-01-20
 4 # Author: xiaodongrush
 5 #-----------------------------------------------------------#
 6 use 5.010;
 7 $secret_num = int(1 + rand 100); 
 8 while(<STDIN>) {
 9   chomp;
10   if(/^[0-9]+$/) { # 键入都是数字
11     if($_ < $secret_num) {
12        say "Too low. Try again.";
13     } elsif($_ > $secret_num) {
14        say "Too high. Try again.";
15     } else {
16        say "You get it.";
17        last;
18     }
19   } elsif(/^quit$|^exit$|^\s*$/) { # quit,exit,空白行
20     last;
21   } else {
22     say "Not Vaild Input. Try again";
23   }
24 }
25 #-----------------------------------------------------------#

 1 #-----------------------------------------------------------#
 2 # Source: Learning Perl, chapter10,exercise-2
 3 # Date:   2012-01-20
 4 # Author: xiaodongrush
 5 #-----------------------------------------------------------#
 6 use 5.010;
 7 $secret_num = int(1 + rand 100);
 8 if(@ARGV[0] =~ /-debug/i) {
 9   say "[DEBUG] The secret num is $secret_num";
10 }
11 while(<STDIN>) {
12   chomp;
13   if(/^[0-9]+$/) { # 键入都是数字
14     if($_ < $secret_num) {
15        say "Too low. Try again.";
16     } elsif($_ > $secret_num) {
17        say "Too high. Try again.";
18     } else {
19        say "You get it.";
20        last;
21     }
22   } elsif(/^quit$|^exit$|^\s*$/) { # quit,exit,空白行
23     last;
24   } else {
25     say "Not Vaild Input. Try again";
26   }
27 }
28 #-----------------------------------------------------------#

 1 #-----------------------------------------------------------#
 2 # Source: Learning Perl, chapter10,exercise-3
 3 # Date:   2012-01-20
 4 # Author: xiaodongrush
 5 #-----------------------------------------------------------#
 6 use 5.010;
 7 $ENV{"ZERO"} = 0;
 8 $ENV{"EMPTY"} = '';
 9 $ENV{"UNDEFINED"} = undef;
10 $max_key_len = 0;
11 $key_len_limit = 10;
12 $value_len_limit = 10;
13 while(($key,$value) = each %ENV) {
14   if(length($key) > $key_len_limit) {
15     next;
16   }
17   $max_key_len = $max_key_len > length($key) ? $max_key_len : length($key);
18 }
19 say "1234567890" x 7;
20 while(($key,$value) = each %ENV) {
21   if(length($key) > $key_len_limit || length($value) > $value_len_limit) {
22     next;
23   }
24   printf "%" . $max_key_len . "s    " . "%s\n"$key$value // "(undefined)";  
25 }
26 #-----------------------------------------------------------#
27 # 如果$value='',那么$value || "(undefined)" 返回"(undefined)"
28 # 如果$value='',那么$value // "(undefined)" 返回'';
29 # 如果$value=undef,$value || "(undefined)" 
30 # 和$value // "(undefined)"都返回"(undefined)"
31 #-----------------------------------------------------------#

 

3. 文件

    /Files/pangxiaodong/LearningPerl/ch10-answer.rar

posted @ 2012-01-20 12:37  xiaodongrush  阅读(222)  评论(0编辑  收藏