perl学习基本语法

Posted huanm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl学习基本语法相关的知识,希望对你有一定的参考价值。

一: 如何运行

  在linux终端,直接输入 perl filenaem.pl

  Perl脚本在解释执行时和shell脚本一样,自顶向下,跳过sub定义部分依次执行。

二:标量

1:  标量

    可以是数字或者字符串;

    数字分为浮点数,整数(允许分隔符)和非十进制;

2:  字符串(单引号字符串与双引号字符串)

   单引号中的字符串:

    除单引号和反斜杠字符外,单引号内所有字符都代表它们本身;例如 ‘\\n’代表\\和n两个字符;

    ‘\\’’表示单引号;‘\\\\’表示反斜线;

   双引号中的字符串:

    “\\n”代表换行符;

    双引号字符串支持变量的内插;

    $,@,",\\在双引号字符串中具有特殊意义,如果要在双引号字符串中表示这些字符,需要加上/;

3:  其他字符与字符串

    ‘\\\'\\\\’表示‘\\;

    \\u:将字符大写;\\L:将字符小写

    重复操作符:“bug”x3  #输出bugbugbug;

    拼接操作符:“who” . "are" . "you" #输出who are you;

4:  标量的定义:以$开头;慎重使用Perl默认的一些变量:$ARGV,$_ $1,$2,...,$n,$$,$@,$?,$!

6:  双目操作符:

    

               输出结果:

7:  标量内插

    在双引号字符串中可以被内插,输出$符需要前面加转义\\,或者使用单引号字符串

    eg:print “The price is \\$5.\\n”;

      print \'The price is $5.\\n\';

    如果要在变量内插后紧接着输出字母,数字或者下划线,可以使用花括号

    eg:"Today is \\${year}_${month}_${day}\\n"; #如果存在$year_与$year,加上{}以区分

8:  操作符

    **:幂操作符;

    gt,ge,It,ne,cmp:比较操作符

    ++,--:++可用于字符串,但结尾字符为’z‘,’Z‘,\'9\'时进位;--不能用于字符串,如果用于字符串,需要将字符转化为数字。

9:  undef(变量)

    变量在未赋值之前,默认值未undef;

    若被当作数字使用,会被视为0,若当作字符串使用,会被视为空串;

    undef既不是数字也不是字符串;

    有些操作符在参数越界或者不合理时,会返回undef;

10:  defined(函数)

    用来判断变量值是否未undef

三:  列表与数组

    列表是集合,数组是存储列表的变量;列表指的是数据,数组指的是变量;列表的值不一定要放在数组里,但数组都一定包含一个列表。

1:  列表的定义与初始化

    eg1:(5,8,9) #包含5,8,9三个数的一个列表;

    eg2:(1..100) #包含1到100的一个列表

    用qw符号定义单词列表:会将列表中的每一个元素当作单引号内的字符串

    eg: qw(my name is peter);

2:    数组定义

    @arg = (0,1,2,3);

    可以用列表对数组赋值:(arg[0],arg[1])= qw/array list/;

四:  数组与列表操作符

1:  pop()

    取出数组中的最后元素,并返回该元素的值;作用于一个空数组时,什么也不做,返回undef。

2:  push()

    添加一个元素或者一串元素到数组的末尾

3:  shift与unshift

    shift取出数组的开头元素,并返回;

    unshift添加一个元素或者列表到数组的开头

4:  foreach:遍历列表中的值,依次迭代;若循环中修改了控制变量的值,也就修改了这个列表元素的值

    这里的val是临时变量

5:  reverse:读取列表的值,并按相反的次序返回该列表

    

6:  sort:排序

   

          输出:

7:  上下文与scalar(强制类型转换)

    scalar函数:可以使用scalar函数强制制定标量上下文;例如:

    

             输出:

    scalar输出个数

五:  子函数(subroutines)

1:  定义

    sub开头;可在程序任意位置定义;无需对子程序进行事先申明;当出现重名子程序时,后面会覆盖前面

2:  子程序调用(&+子程序名)

    如&display();

3:  子程序参数(@)

    @_是子程序的私有变量,在当前的子程序调用中,@总是包含了它的参数列表;例如

    使用my声明私有变量,是局部变量。

4:  子程序返回值

    最后一次的结果会被自动当成子程序的返回值(不是最后一个语句);

    可以使用return操作符

5:  例子

    

             输出:

6:即使传入的是数组,也是使用my($a,$b)=@_,后可以使用数组@a。

  

  输出:

  

 

 

 

 

  

  

    

    

 

 

    

    

 

 

 

 

 

    

以上是关于perl学习基本语法的主要内容,如果未能解决你的问题,请参考以下文章

python和perl基本语法区别

Perl语法的基本规则

Perl基本语法实例,变量,数组,函数,if, for, while

Python基本语法

寻找提示以更好地理解 Perl 兼容的正则表达式运算符和语法

yaml基本语法