• 第四章 语言和声明


    4.1 简单语句


    一个简单语句是一个表达式,因为副作用而计算。每条简单语句都必须以分号结尾,除非它是一个块中的最后一句。


    4.2 if else 语句:


    [oracle@jhoa 20150319]$ cat 1.pl 
    if (( my $color = <STDIN>) =~ /red/i ) {
          $value = 1;
    }
    elsif ($color =~ /green/i) {
          $value = 2;
    }
    elsif ($color =~ /blue/i) {
      $value = 3;
    }
    else {
         print "unknown"; $value=4;
    }
    print "$value is $value ";


    4.3.3 foreach 循环:




    累加 $value
    [oracle@jhoa 20150319]$ cat 2.pl 
    @array = qw/1 2 3 4 5 6 7 8 9 10/;


    $sum = 0; foreach $value (@array) { $sum += $value }
    print "$sum is $sum ";
    [oracle@jhoa 20150319]$ perl 2.pl 
    $sum is 55


    [oracle@jhoa 20150319]$ cat 2.pl 
    @array = qw/1 2 3 4 5 6 7 8 9 10/;


    $sum = 0; foreach $value (@array) { $sum = $value + $sum }
    print "$sum is $sum ";
    [oracle@jhoa 20150319]$ 
    [oracle@jhoa 20150319]$ perl 2.pl 
    $sum is 55




    last 退出循环:


    [oracle@jhoa 20150319]$ cat 4.pl 
    for ($i = 2;$i<10;$i=$i+2){
      for ($j=3;$j <5;$j++){
        if ($i > $j){
       last; ###退出内层循环
       }
      print "1--$i is $i ";
      print "1--$j is $j ";
        }
    print "2---$i is $i "; 
    print "2---$j is $j "; 
    }
    [oracle@jhoa 20150319]$ perl 4.pl 
    1--$i is 2
    1--$j is 3
    1--$i is 2
    1--$j is 4
    2---$i is 2
    2---$j is 5
    2---$i is 4
    2---$j is 3
    2---$i is 6
    2---$j is 3
    2---$i is 8
    2---$j is 3


    for ($j=3;$j <5;$j++){  这层循环退出






    4.4 光块




    return 只能用于子程序(或者eval)块


    [oracle@jhoa 20150319]$ cat 5.pl 
    $var="111111";
    return 1;
    [oracle@jhoa 20150319]$ perl 5.pl 
    Can't return outside a subroutine at 5.pl line 2.


    $dbh = DBI->connect("dbi:Oracle:$DATABASE", "$USERID", "$PASSWORD", {PrintError => 0});


    $dbh->do("TRUNCATE TABLE $DESTSCHEMA.F_EVT_CADC_SRLFREEZE") or die($DBI::errstr);






    闭包:






    [oracle@jhoa 20150319]$ cat a1.pl 
    use strict;
    $var='aaaaaa';


    [oracle@jhoa 20150319]$ perl a1.pl 
    Global symbol "$var" requires explicit package name at a1.pl line 2.
    Execution of a1.pl aborted due to compilation errors.


     use strict会限制全局变量的使用


    use strict;
    our $var='aaaaaa';


    明确声明全局变量




    为了又更好的颗粒度和提高效率,你可以用圆括号捕捉你特别想分离出来的部分。每对圆括弧捕捉与圆括弧内的


    模式相匹配的子模式。圆括弧由左圆括弧的位置从左到右一次排序,对应的那些子模式的子字串在匹配之后可以


    通过顺序的变量$1,$2,$3等等获得:


    [oracle@jhoa 20150319]$ cat a2.pl 
    $_ = "Bilbo Baggins's birthday is September 22";
    /(.*)'s birthday is (.*)/;
    print "Person:$1 ";
    print "Person:$2 ";


    [oracle@jhoa 20150319]$ perl a2.pl 
    Person:Bilbo Baggins 
    Person:September 22 























































  • 相关阅读:
    nrm安装与配置
    vue-cli2升级到webpack4
    npm和yarn的区别
    Vite和Vue CLI的优劣
    基于vue+element+select实现的自定义控件selectTree
    Extjs 隐藏tabpanel的header / title
    await/async 总结
    泛型
    jpg图片打包生成pdf文件的几种方式
    varchar(100)和varchar(10)的区别
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351815.html
Copyright © 2020-2023  润新知