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



  • 相关阅读:
    BZOJ4779: [Usaco2017 Open]Bovine Genomics
    USACO比赛题泛刷
    BZOJ1977: [BeiJing2010组队]次小生成树 Tree
    LOJ #10132. 「一本通 4.4 例 3」异象石
    $O(n+log(mod))$求乘法逆元的方法
    BZOJ2226: [Spoj 5971] LCMSum
    数据库 | Redis 缓存雪崩解决方案
    中间件 | 微服务架构
    数据库 | SQL 诊断优化套路包,套路用的对,速度升百倍
    数据库 | SQL语法优化方法及实例详解
  • 原文地址:https://www.cnblogs.com/hanleilei/p/2322508.html
Copyright © 2020-2023  润新知