当前位置: 首页 > news >正文

perl脚本基础

perl脚本基础

版本:perl5
支持网站: CPAN
查看perl版本:perl --version

Perl脚本是一种常见的编译脚本。本文首先对Perl脚本进行简单介绍,其后列出在实际中常遇到的Perl语言语法,并进行简单举例。(主打能看懂,但不保证能学会)

1 Perl概述

Perl,可能有很多解释,但Perl的缔造者Larry Wall是先想出该词,再思考如何解释的。因此,Perl不是一个缩写词,也无需关注其全程是什么。

Perl(大写P)一般指代程序语言,perl(小写p)一般指代实际编译并运行程序的解释器。(perl的标志是camel)

perl脚本只是众多脚本语言的一种,存在即合理。
Perl具有以下优势:
(1)快速写出”难看但能用“的一次性程序
(2)擅长处理总体于文字处理有关的问题(本身是纯文本文件,可以用任何编辑器)
不适合做如下工作:
(1)制作封闭式二进制可执行文件

1.1 hello world脚本示例

运行代码:(注意,赋予可执行权限,chmod +x kkk.pl)
在这里插入图片描述
运行结果:
在这里插入图片描述

1.2 基本规则

(1)可以在任意位置添加空白符(空格、制表符、换行符)
(2)语句的结束以";"分隔
(3)注释从"#"开始,到换行结束
(4)开头的"#!"指定执行该文件的程序路径,此处就是/usr/bin/perl
(5) \ 反斜线转义
(6) ` 反引号,
(7)'单引号,'\n'中的字符串表示字符原义:反斜杠和字母n
(8)" 双引号,"\n"中的字符串,如有转义,则表示转义之后的结果:回车
(9)<> 尖括号
(10)区分大小写
(11)$开头声明标量变量,$name="Lucy"
(12)@表示数组中所有的内容,也可通过下标访问$Name[i]或,@Name
(13)foreach循环,默认变量$_表示当前遍历值
(14)sub 定义子程序的关键字,sub func {xxx; }
(15)& 调用子程序,可在脚本中任何位置调用,&func;
(16)默认子程序最后一次执行结果为子程序返回值
(17)子程序参数传入,直接在调用时添加&func(param1,param2),在子程序中,通过特殊数组变量@_$_[i]访问输入参数(其中i为数组下标)
(18)默认情况下,perl中所有变量为全局变量,声明私有需要在变量声明前添加my关键字,如:my $m;
(19)return操作符可以立即返回,可携带返回值。
(20)defined常用于判断是否到文件尾部
(16)use指定版本号,use 5.034;
(xx)perl脚本常见文件名后缀".pl",(没有也可以直接运行)
(xx)运行方式:perl xxx./xxx都可
待续

2 正则表达

2.1 元字符/量词/模式分组

符号含义举例
.匹配任意一个字符的通配符(除换行符)/hel.o/,这个模式匹配hello、hel=o、hel.o等,如果仅匹配’.',需要在前面加上转移字符,如/3\.1415/
*匹配其前面的条目0次或多次/fre\t*barney/匹配fred和barney之间任意数量的\t
.*.和*混用,表示匹配任意字符零次或无限多次
+匹配其前面的条目1次以上
?其前面的条目是可有可无的
()匹配时,将其中内容视为一个整体匹配
[]字符集
\i反向引用匹配,i表示匹配顺序

参考资料:《Perl语言入门(第六版)》

相关文章:

  • 在泰安市有做阿里巴巴网站的枸橼酸西地那非片的作用及功效
  • 建设网站360获客软件排名前十名
  • 做网站公司怎样seo神器
  • 信息课做动漫网站怎么优化整站
  • 什么叫宣传型网站站点推广是什么意思
  • 做网站竞价没有点击率b站推出的短视频app哪个好
  • MedGemma 简介
  • (每日一道算法题)实现 pow(x, n) 的快速幂解法
  • 【报错】Error attempting to get column ‘created_time‘ from result set.解决方法
  • 嵌入式Linux:子进程执行新程序
  • Selenium 测试框架 - C#
  • [C语言实战]C语言文件操作实战:打造高效日志系统(六)
  • 《Shell脚本实战:打造交互式多级菜单与LAMP/LNMP环境配置指南》
  • GPU基础知识
  • 字符集和字符编码
  • 创建dummy
  • 2025年第八届广西大学生程序设计大赛(正式赛)题解(更新中)
  • 第五十一节:增强现实基础-单应性矩阵计算
  • Java NPE为什么不会导致进程崩溃(CoreDump)
  • ModbusRTU转profibusDP网关与RAC400通讯报文解析
  • 动态规划---路径问题
  • 【分库分表】理论基础
  • 基于python 实现的对一系列给定点进行 Akima 插值
  • 确定性推理 归结
  • Python类与对象:面向对象编程的基础
  • Ollama学习1:安装、命令、API