Perl 学习手札之五: conditional statement

本章节实在是简单的不想写,太多雷同的部分了。

 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不同的风格写条件控制语句也是一件有趣的事情!



原文地址:https://www.cnblogs.com/hanleilei/p/2322508.html