Perl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# CPAN 配置文件所在
[root@localhost] yum -y install perl-CPAN
[root@localhost] pwd
/root/.cpan/CPAN/MyConfig.pm
[root@localhost]
[root@localhost] perl -MCPAN -e shell

# 查看配置信息
cpan> o conf
# 查看源
cpan> o conf urllist
# 添加源
cpan> o conf urllist push https://mirrors.aliyun.com/CPAN/
# 一次添加多个源
cpan> o conf urllist ftp://mirrors.sohu.com/CPAN/ https://mirrors.163.com/cpan/
# 删除源
cpan> o conf urllist pop 2
# 一次删除多个源
cpan> o conf urllist pop https://mirrors.163.com/cpan/ ftp://mirrors.sohu.com/CPAN/
再次查看当前源信息
# 递交更改
cpan> o conf commit
# 初始化CPAN
cpan> o conf init

# cpan查看模块
[root@localhost] cpan -i Module_name

# 检查模块是否安装成功,无任何返回表示成功,否则报错
[root@localhost] perl -Mmodule_name -e1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@master ~]# cpan -i Sys::Syslog
Reading '/root/.cpan/Metadata'
Database was generated on Wed, 18 Dec 2019 03:55:15 GMT
Sys::Syslog is up to date (0.36).pm

# perl查看帮助文件

# 显示所有内置文档的目录
[root@localhost] perldoc perltoc
#主要描述Perl的基本语法
[root@localhost] perldoc perlsyn
# 阅读关于Perl内置函数的用法
[root@localhost] perldoc perlfunc
# 阅读该函数相关的内容
[root@localhost] perldoc -f split
# 阅读模块内嵌的文档
[root@localhost] perldoc Module_name
# 查询模块安装位置
[root@master ~]# perldoc -l Sys::Syslog
/root/perl5/lib/perl5/x86_64-linux-thread-multi/Sys/Syslog.pm

# 查看模块源代码
[root@localhost] perldoc -m Module_name
# 搜索相关主题
[root@localhost] perldoc -q keyword

perlfaq     常见问题
perltoc       文档内容表
perldata  Perl数据结构
perlsyn  Perl 语法
perlop  Perl 运算符及优先级
perlre  Perl 正则表达式
perlrun  运行Perl内部函数
perlopentut  Perl open() 函数使用指导
perlvar  Perl 内部变量
perlsub  Perl 子程序
perlmod  Perl 模块: 他们是如何工作的
perlmodlib  Perl 模块: 怎么样写和使用PERL模块
perlmodinstall Perl 模块: 怎样安装来自CPAN的模块
perlform  Perl 格式化
perlunicode  Perl 对unicode的支持
perllocale  Perl 对locale的支持
perlreftut  Perl 引用的简单介绍
perlref  关于Perl 引用的更多知识
perldsc  Perl 数据结构介绍
perllol  Perl 数据结构:数组的数组
perlboot  Perl 面向对象基础教程
perltoot  Perl 新手指南, 第1部分
perltootc  Perl 新手指南,第2部分
perlobj  Perl 对象
perltie  Perl 隐藏在简单变量之后的对象
perlbot  Perl 技巧与实例
perlipc  Perl 进程间通讯
perlfork  Perl fork() 函数的知识
perlthrtut  Perl 线程指南
perllexwarn  Perl 的警告与控制
perlfilter  Perl 过滤源代码
perldbmfilter Perl DBM 过滤器
perlcompile  Perl 编译套件介绍
perldebug  Perl 调试
perldiag  Perl 诊断信息
perlnumber  Perl 数字的语义
perlsec  Perl 安全
perltrap  Perl 无意的陷阱
perlport  Perl 便利性指导
perlstyle  Perl 风格指导
perlpod  Perl 老的文本文档
perlbook  Perl 书籍信息
perlembed  Perl 在你的C,C++程序中嵌入PERL
perlapio  Perl 内部IO抽象接口
perldebguts  Perl 调试技巧
perlxs  Perl XS 应用程序接口
perlxstut  Perl XS 指南
perlguts  Perl 用于扩展的内部函数
perlcall  Perl 从C语言继承的风格
perlapi  Perl API 列表 (自动生成的)
perlintern  Perl 内部函数 (自动生成的)
perltodo  Perl 要做的事
perlhack  Perl hackers指导
perlhist  Perl 历史记录
perlamiga  Perl 对于Amiga需注意的事项
perlcygwin  Perl 对于Cygwin需注意的事项
perldos  Perl 对于DOS需注意的事项
perlhpux  Perl 对于HP-UX需注意的事项
perlmachten  Perl 对于Power MachTen需注意的事项
perlos2  Perl 对于OS/2需注意的事项
perlos390  Perl 对于OS/390需注意的事项
perlvms  Perl 对于VMS需注意的事项
perlwin32  Perl 对于Windows需注意的事项


字符串相关函数: split, join, substr, chomp

数组相关函数:shift, pop, unshift, push, scalar, length

哈希相关函数:keys,values, exists

其他函数: sort, reverse


Perl输出用print,printf

Perl语句需要分号;结尾

Perl单行注释#

使用 POD(Plain Old Documentations) 来进行多行注释=pod =cut

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

Perl 解释器不会关心有多少个空白,可有可无空格

所有类型的空白如:空格,tab ,空行等如果在引号外解释器会忽略它,如果在引号内会原样输出。

perl 输出字符串可以使用单引号和双引号

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

需要输出一个特殊的字符,可以使用反斜线(\)来转义

HERE文档

Perl 是一种弱类型语言,所以变量不需要指定类型,Perl 解释器会根据上下文自动选择匹配类型。

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

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

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

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

变量不需要显式声明类型,在变量赋值后,解释器会自动分配匹配的类型空间。

变量使用等号(=)来赋值,变量定义需要$

命令use strict意味着所有变量必须用my来声明,裸单词必须用引号括起来

Perl v字符串

Perl 串行与数组

Perl引用就是指针,Perl 引用是一个标量类型可以指向变量、数组、哈希表(也叫关联数组)甚至子程序,可以应用在程序的任何地方

Perl中,||, =, or 这三者优先级从左至右逐渐降低。

在PERL开发中,通常可以用system函数或 ``操作符来执行系统命令,但对于shell内部命令(即在文件系统中无执行文件的命令)这样直接执行会出错,错误是无法找到该文件或目录。可以在命令前加sh –c来实现。而对cd、umask等SESSION型命令,应该用PERL的内部函数chdir、umask等来实现功能更可靠。

Perl基本语法
Perl文件操作
Perl目录操作
Perl错误处理
Perl特殊变量
@_
$_
$!
$#
$`
$&
$’
$$
Perl正则表达式
Perl邮件
Perl Socket编程