本章节实在是简单的不想写,太多雷同的部分了。
understanding conditional statements
1. conditional execute code selectively
if(condition){ statements )
2. conditionals my provide alternative code
if (condition){ statement_1 }else{ statement_2 }
beginning with version 5.10, perl also provides a switch statement
-use given and when-requires the latest version of perl
if.pl
#!/usr/bin/perl use strict; use warnings; use constant{ TRUE =>1, FALSE => '' }; main(@ARGV); sub main { if(1){ #replace 1 with 0/142/"this is true"/""/undef/5+5/5-5 and veiw the result. message("this is true."); } } sub message { my $m = shift or return; print("$m\n"); } sub error { my $e = shift || 'unkown error'; print("$0: $e\n"); exit 0; }
else.pl
#!/usr/bin/perl use strict; use warnings; use constant{ TRUE =>1, FALSE => '' }; main(@ARGV); sub main { if(TRUE){ message("This is true."); }else{ message("This is false."); } } sub message { my $m = shift or return; print("$m\n"); } sub error { my $e = shift || 'unkown error'; print("$0: $e\n"); exit 0; }
elsif.pl
#!/usr/bin/perl use strict; use warnings; use constant{ TRUE =>1, FALSE => '' }; main(@ARGV); sub main { if(TRUE){ message("This is true."); }elsif(FALSE){ message("but this one is true"); } else{ message("This is false."); } } sub message { my $m = shift or return; print("$m\n"); } sub error { my $e = shift || 'unkown error'; print("$0: $e\n"); exit 0; }
postfix.pl
#!/usr/bin/perl # use strict; use warnings; main(@ARGV); sub main { my $x =42; message("number is in range") if($x>25 and $x < 100); } sub message { my $m = shift or return; print("$m\n"); } sub error { my $e = shift || 'unkown error'; print("$0: $e\n"); exit 0; }
这里我们用一个很cool的代码书写方式:将control结构放在后面,简洁,漂亮!
unless.pl
#!/usr/bin/perl use strict; use warnings; main(@ARGV); sub main { my $x =24; message("number is out of range") unless $x>25 and $x < 100; } sub message { my $m = shift or return; print("$m\n"); } sub error { my $e = shift || 'unkown error'; print("$0: $e\n"); exit 0; }
同样简洁!
ternary.pl
#!/usr/bin/perl use strict; use warnings; main(@ARGV); sub main { my $n= 24; my $s = ($n>25 and $n <100)?"in range":"out of range"; message("number is ". $s); } sub message { my $m = shift or return; print("$m\n"); } sub error { my $e = shift || 'unkown error'; print("$0: $e\n"); exit 0; }
学会用和C不同的风格写条件控制语句也是一件有趣的事情!
posted on 2012-02-19 19:25 阅读( ...) 评论( ...)