美文网首页
【perl】perl基础语法

【perl】perl基础语法

作者: 虫虫工工队 | 来源:发表于2020-05-24 16:09 被阅读0次

    概述

    • 1987年Larry创造的,为了解决会计报表问题
    • 特点:简单,快速,灵活,免费
    my $num=1;
    my $p_str="hello,i'm class ".$num."\n";
    printf"$p_str\n";
    #hello,i'm class 1
    
    • 不用事先声明变量
    • 正则表达式好用
    • 应用场合:生物学数据处理,工程领域数据处理,web网站,数据库处理,作图,邮件处理,FTP功能自动化

    perl开发环境的搭建

    • 安装activeperl

    良好的perl开发习惯

    内建警告信息

    • -w
    #!/usr/bin/perl -w
    use diagnostics;#在看到警告信息后加上这一行
    use strict;
    

    perldoc帮助文档

    • 要好好使用帮助文档
    perldoc -f chomp #查询内建函数,使用方法、说明、例子等
    perldoc -f print#查询print函数,使用方法、说明
    perldoc perlsyn #perl语法的详细说明
    perldoc perl #返回perl文章列表,如概述,使用手册
    

    perl数据类型——1标量Scalar

    • 以$开头

    数字标量

    • 值为数字的标量,全部为双精度浮点数
    • 可使用普通表达法也可以用科学计数法(eE大小写都可以)
    • 可以用下划线"_",分开长数字
      如314983475=314_983_475


    字符串标量

    • 值为字符串,由引号标识
    • 单引号双引号都可以
    • 字符串中需要带其中一种引号,那就用另一种引号做标识
      或是在字符串中出现的引号前加反斜杠""


    • 区别:转义支付只在双引号中有效,因此一般都使用双引号

    标量的声明及作用域

    • 可以在任意位置声明并使用
      也可以不声明但是新手不推荐

    作用域

    • 作用域:是一个标量可以被有效访问并使用的范围
    • 分类:包变量;私有变量
    • 包变量:默认情况下的变量是包变量,是包内的全局变量,在整个包及先的子函数中可以用
      perl中package是一个包,主函数也可看作一个包
    • 私有变量:my、local
      my:只在本层模块可以看到该变量
      local:在本层和本层的下一层可看到该变量

    perl数据类型——2数组

    数组的定义

    • 定义:是标量数据的有序列表,是多个标量数据的一种合集
    • 可包含任意多个元素
    • 以@为标识
    • 各元素可以为不同类型


    数组的赋值

    • 列表直接量


    • 可以用".."产生列表直接量,表示从左到右一次+1


    字符串列表

    • 可用“qw”表示,省去对字符串加引号
    • 可以用空格,制表符,换行作为间隔符
    • 可以用其他标点作为定界符,代替括号
    ("string1","string2","string3")
    qw(string1 string2 string3)
    qw/string1 string2 string3/
    

    如何赋值:

    @array=("string1",1.5,418)
    
    • 如果列表中含有标量又含有数组,会将数组里的值取出作为元素,再赋值给这个新的数组
    • 数组直接相互赋值,是复制过程,修改其中一个不影响另一个

    特殊的赋值方式

    • pop:取出数组最右边的元素,同时返回该元素值
    @array=(5..9) ##(5,6,7,8,9)
    $test1=pop(@array)##$test1=9,@araay=(5,6,7,8)
    test2=pop(@array)##$test2=8,@araay=(5,6,7)
    
    • push:添加一个(或一串)元素到尾端
    @array=(5,6)
    push(@array,8) ##@array=(5,6,8)
    
    • shift:取出元素最左边的元素同时返回该元素值(与pop相似相反)
    • unshift:添加一个(或一串)元素到数组的前端

    数组元素的访问

    • 通过索引,对数组的元素进行访问
    • 索引值从0开始,中括号


    • 特殊索引值
      找最后元素的索引值是几?
    $end=$#array #117
    $array[-1] #直接索引最后1个元素
    $array[-2] #直接索引倒数第2个元素
    

    perl数据类型——3引用

    • 定义:作为一种数据变量,可以指向变量、数组甚至子程序,代指值的地址
    • =指针
    • 在变量前加上反斜杠,就能得到这个值的地址


      反斜杠\获取地址
    • 修改地址内的值=修改这个变量的值

    引用的方法

    软引用

    • 定义:类似于软连接,存储一个变量的名字
    $scalar='hello'
    @scalar=("hello","world",123)
    $refer="scalar"#引用变量名
    
    • 软引用的解引用
    $$refer #实质对应的就是标量$scalar
    $$refer[0] #实质为$scalar[0]
    
    • 软引用实质:就是替代的过程,把变量名用另外一个变量替代

    硬引用

    • 定义:硬连接,存储地址
    $scalarref=\$foo; ##引用变量$foo的地址,$foo='hello';
    $constref=\186_282.42; ##引用常量的地址
    $arrayref=\@arr; ##引用数组的地址,@arr=1..100;
    $arrRef=[1,2,3,4,5]##引用匿名数组,需要用到中括号
    

    *硬引用的解引用

    • 使用花括号{}来对地址进行解引用


      硬引用的解引用
    • 举例


    引用的应用

    • 由于perl中数组只有一维的,用引用可以获取数组中列表中元素的值,如
    @array=([1..5],'hello')
    $array[0] #取到[1..5]
    ${$array[0]} #取到[1..5]的地址
    ${$array[0]}[0] #取到值1
    

    相关文章

      网友评论

          本文标题:【perl】perl基础语法

          本文链接:https://www.haomeiwen.com/subject/iscjahtx.html