相关文章推荐


1. Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 "实用报表提取语言"。

Perl 是高级、通用、直译式、动态的程序语言。

Perl 最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。

Perl 借用了C、sed、awk、shell脚本以及很多其他编程语言的特性。

Perl 最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。


二. perl 基础语言

1. Perl 程序有声明与语句组成,程序自上而下执行,包含了循环,条件控制,每个语句以分号 (;) 结束。

2. perl 注释的方法为在语句的开头用字符#

3. Perl双引号和单引号的区别: 双引号可以正常解析一些转义字符与变量,而单引号无法解析会原样输出


三、perl 数据类型

1. Perl 有三个基本的数据类型:标量、数组、哈希。

标量

标量是Perl语言中最简单的一种数据类型。这种数据类型的变量可以是数字,字符串,浮点数,不作严格的区分。在使用时在变量的名字前面加上一个"$",表示是标量

数组

数组变量以字符"@"开头,索引从0开始,如:@arr=(1,2,3)

哈希

哈希是一个无序的 key/value 对集合。可以使用键作为下标获取值。哈希变量以字符"%"开头。


四、 perl 运算符

1. 引号运算

运算符

描述

实例

q{ }

为字符串添加单引号

q{abcd} 结果为 'abcd'

qq{ }

为字符串添加双引号

qq{abcd} 结果为 "abcd"

qx{ }

为字符串添加反引号

qx{abcd} 结果为 `abcd`


2.

运算符

描述

实例

&

如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。

($a & $b) 将得到 12,二进制为 0000 1100

|

如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。

($a | $b) 将得到 61 ,二进制为 0011 1101

^

如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。

($a ^ $b) 将得到 49,二进制为 0011 0001

~

二进制反码运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0。

(~$a ) 将得到 -61 ,二进制为 1100 0011 ,一个有符号二进制数的反码形式。

<<

二进制左移运算符。左操作数的值向左移动右操作数指定的位数。

$a << 2 将得到 240 ,二进制为 1111 0000

>>

二进制右移运算符。左操作数的值向右移动右操作数指定的位数。


$a >> 2 将得到 15 ,二进制为 0000 1111




五、perl 数组

数组变量以 @ 开头。访问数组元素使用 ​ $ + 变量名称 + [索引值] ​ 格式来读取

1. 添加和删除数组元素

序号

类型和描述

1

push @ARRAY, LIST

将列表的值放到数组的末尾


2

pop @ARRAY

弹出数组最后一个值,并返回它


3

shift @ARRAY

弹出数组第一个值,并返回它。数组的索引值也依次减一。


4

unshift @ARRAY, LIST

将列表放在数组前面,并返回新数组的元素个数。



六、 perl 语句

Perl UNLESS 语句

unless(boolean_expression){
# 在布尔表达式 boolean_expression 为 false 执行
}


七、Perl 正则表达式

1. 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

Perl语言的正则表达式功能非常强大,基本上是常用语言中最强大的,很多语言设计正则式支持的时候都参考Perl的正则表达式。

Perl的正则表达式的三种形式,分别是匹配,替换和转化:

  • 匹配:m//(还可以简写为//,略去m)

  • 替换:s///

  • 转化:tr///

这三种形式一般都和 ​ =~ ​ 或 ​ !~ ​ 搭配使用, =~ 表示相匹配,!~ 表示不匹配。

2.

模式匹配修饰符

模式匹配有一些常用的修饰符,如下表所示:

修饰符

描述

i

忽略模式中的大小写

m

多行模式

o

仅赋值一次

s

单行模式,"."匹配"\n"(默认不匹配)

x

忽略模式中的空白

g

全局匹配

cg

全局匹配失败后,允许再次查找匹配串

3.

正则表达式变量

perl处理完后会给匹配到的值存在三个特殊变量名:

  • $`: ​匹配部分的前一部分字符串
  • $&: ​匹配的字符串
  • $': ​还没有匹配的剩余字符串

4.

替换操作符

替换操作符 s/// 是匹配操作符的扩展,使用新的字符串替换指定的字符串。基本格式如下:

s/PATTERN/REPLACEMENT/;

PATTERN 为匹配模式,REPLACEMENT 为替换的字符串。


八、 Perl 目录操作

1.

opendir DIRHANDLE, EXPR  # 打开目录
readdir DIRHANDLE # 读取目录
rewinddir DIRHANDLE # 定位指针到开头
telldir DIRHANDLE # 返回目录的当前位置
seekdir DIRHANDLE, POS # 定位指定到目录的 POS 位置
closedir DIRHANDLE # 关闭目录

2. 显示目录下的所有文件,使用 glob 操作符





同一个docker image 启动多个容器 docker运行多个容器

使用docker-compose启动多个容器1.创建docker-compose.yml 建议使用idea创建,因为idea有提示version: '3.0' #版本号 services: #服务 tomcat: #tomcat容器 container_name: tomcat #容器名称 image: tomcat:9 #镜像 ports: #端口号

Java禁止使用包装类 java 包装类

前言这篇文章主要从使用角度,源码角度以及JVM内存位置等角度深入解析Java的基本数值包装类。1. 包装类1.1 包装类的定义:Java中每一种基本类型都会对应一个唯一的包装类(位于java.lang.*package中),基本类型与其包装类都可以通过包装类中的静态或者成员方法进行转换。每种基本类型及其包装类的对应关系如下表所示。| 基本数据类型 | 包装类 | | --------

 
推荐文章