美文网首页
【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