zoukankan      html  css  js  c++  java
  • Perl 基本语法

    perl 是一种强大的脚本语言,主要用于脚本处理、报表生成,代码简洁高效,perl可以用少量代码实现其他语言很多行代码才能完成的任务,但是这样的代价就是 perl 难学易忘,而且阅读起来比较费力。

    这里简单记录一些 perl 基本语法:

     

    1. 创建 Perl 变量

    perl 变量分为三种:标量,列表,哈希

    一般字符和数字都是标量,创建标量用美元符号 $ 开头:

      $var = "str01";  # 字符变量

      $var = 123;   # 数值变量,注意 perl 每条命令都以分号 ‘;’ 结尾

      注意在比较标量大小时,数值变量用 ==,>=,<=; 而字符变量用 eq,gt,lt

    创建列表(即数组)用符号 @ 开头,列表元素用小括号括起来:

      @ary = (aa, bb, cc); 

      访问列表元素用中括号: 

      print  $ary[1];   # 输出结果为 bb ,因为角标是从0开始算

    创建哈希用符号%开头,哈希元素用小括号括起来,哈希“键--值”对应可使用“key => value”

      %hash = ( k1 => Jack,k2 => Pony );

      访问哈希元素用花括号:

      say $hash{k2}; # 输出结果为 Pony

    2. Perl 控制流

    perl 控制流语法与C语言类似:

    如下图示例: if, for, while, foreach (foreach 主要用于处理数组)

    注意以下几点:

    a) 注意用 foreach 处理数组时,需要小括号将数组名括起来,如上图中的 (@ary),这个小括号不可省略!

    b) 上图中用的是 say 命令来打印字符,say 与 print 的区别是 say 会自动给行尾加上回车,而 print 不会。

    c) 再判断真假的条件语句中,根据判断条件的不同类型有几种情况:

      如果是数值变量:0为假,其他为真;

      如果是字符变量:空字符串为假,其他为真;

      如果是数组:空数组为假,其他为真;

    d) foreach 和 while 等循环语句可以省略元素变量,这时在语句体中用符号 $_ 访问当前元素,示例如下:

      

     

     

    3.  Perl 子程序(函数)

      

    注意以下几点:

    a) 特殊符号 @_ 是一个数组,函数参数就是保存在这个特殊数组中

    b) 函数中定义的变量默认是全局变量,最好加上关键字 ’my' 改为局部变量

    c) 调用函数时最好在函数名字前加上 ‘&’

    d) 允许把调用语句写在创建子程序前面

    所以上面这段程序按照规范的写法应该是这样:

      

     

     4. 神奇的钻石操作符

      假设脚本 run.pl 中的内容如下:

      

       文件 file.txt 的内容如下:

      

       然后执行命令  run.pl  ./file.txt,此时脚本中的钻石操作符表示 “每次从文件 file.txt 中读取一行,然后执行打印,接着读取下一行,再打印,直到读完最后一行,退出循环 ”

      而如果脚本 run.pl 中的内容是这样:

      

       同样执行命令 run.pl  ./file.txt,此时钻石操作符表示 “ 将文件 file.txt 中的所有行都读进来,保存成一个列表,列表的每个元素就是文件中的每一行内容,让后用 foreach 遍历这个列表 ”

      所以同样是钻石操作符,在不同的上下文中就表示不同的含义:

      在 while 语句中,while 的条件只能是标量,所以是标量上下文,所以这时每次从文件中取出一行,作为字符串标量来执行一次循环;

      而在 foreach 语句中,是列表上下文,所以这时直接从文件中取出所有的行,组成一个列表。

       根据上面的规则,来看下面的脚本,如果 run.pl 中的内容如下:

      

      命令reverse 只能接受列表参数,所以是列表上下文,执行命令 run.pl  ./file.txt,结果是分三行依次输出 three  two  one

    5. Perl 中的特殊字符

      a) 字符 @_  : 这是一个列表变量,存储了函数的所有输入参数

      b) 字符  $_   : 一般用在循环体中,表示循环变量的当前值

     

     

     

     

    |----------------------------------|

  • 相关阅读:
    OpenCv 109---Blob分析
    OpenCv 013---图像的翻转
    OpenCv 012---视频文件读写
    MenuExample
    OpenCv 011---像素归一化
    OpenCv 010---图像像素值统计
    OpenCv 009---色彩空间与色彩空间转换
    OpenCv 008---通道分离与合并
    OpenCv 007---像素操作的逻辑操作
    OpenCv 006---LUT的作用与用法
  • 原文地址:https://www.cnblogs.com/xiaoxie2014/p/11671606.html
Copyright © 2011-2022 走看看