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