【perl】01
1、环境搭建
—— 解释器 / 编译器
Perl 在 Window 平台上有 ActiveStatePerl 和 Strawberry Perl 编译器。
ActiveState Perl和 Strawberry Perl最大的区别是 Strawberry Perl 里面有多包含一些 CPAN 里的模块,
所以Strawberry Perl 下载的安装文件有 80多M, 而ActiveState Perl 只有20M 左右
地址:
https://strawberryperl.com/
安装完成之后使用命令进行检查:
perl -v / perl -version
—— 开发工具
编写Perl程序好像并没有专门的IDE工具,所以按照以往的Java开发工具,直接上IDEA了
打开插件库,里面搜Perl是有这样一个插件支持的:
之后我们需要配置Perl解释器到IDEA中,在编写Perl程序文件时,IDEA会提示SDK未找到,根据提示让IDEA引导我们去配置Perl
Perl程序文件的后缀名称为xxx.pl
点击添加系统Perl之后,IDEA会自动找到我们之前下载安装好的Strawberry Perl
IDEA还会有一些编写帮助提示,是否使用严格语法,和是否完全提示报错警告
2、基础语法
——1、linux环境开发的注意事项
Linux操作系统下Perl程序文件首行必须声明调用的执行程序
#!/usr/bin/perl
另外Perl程序文件实际上是一个可执行的脚本文件,如同SHELL一样
在Linux编写完成之后需要对该文件进行一个可执行权限的赋予
chmod 0777 xxx.pl
执行perl脚本
./xxx.pl
——2、简单的示例
在Windows下IDEA中只要配置好解释器,就可以直接编写程序即可
use strict;
use warnings;
use warnings FATAL => 'all';
# 输出 "Hello, World"
print "Hello, world\n";
IDEA似乎没有提供专门的Perl程序运行功能,所以这里我使用IDEA提供的终端窗口进行Perl程序执行
——3、Perl的注释
单行注释类似MySQL的访问工具里的SQL编辑器一样,使用井号即可实现单行注释
# 这是Perl的单行注释
如果是使用多行注释这需要这样:
=pod
这是一个多行注释
这是一个多行注释
这是一个多行注释
这是一个多行注释
=cut
在IDEA的编辑区域看起来很像Java的JavaDoc注释
/**
* 这是Java的多行注释 文档注释
* 这是Java的多行注释 文档注释
* 这是Java的多行注释 文档注释
*/
——4、空格的字符串
执行命令时,命令参数会忽略过多的空格字符
如果是输出的字符串中带有的空格,Perl则会原封不动的输出
use strict;
use warnings;
use warnings FATAL => 'all';
# 输出 "Hello, World"
print "Hello, world\n";
# 也可以使用括号表示
print ("Hello, world\n");
——5、警告提示
警告是对程序存在的潜在异常进行输出提示
Perl原始的警告提示是使用命令参数实现:
-w
w即warnings警告的缩写
在linux环境下,脚本的首位声明加上该参数即可
#!/usr/bin/perl -w
如果是windows,则是
perl -w xxx.pl
在perl5.6版本中,还支持类似JS语法的声明(即一开始的IDEA帮助提示)
use warnings;
查看更为详细的问题描述,可以再声明一句
use diagnostics;
——6、字符输出问题
在perl中支持双引号和单引号两种字符修饰的处理,但是会有区别:
$a = 10;
print "a = $a\n";
print 'a = $a\n';
Perl双引号和单引号的区别: 双引号可以正常解析一些转义字符与变量,而单引号无法解析会原样输出。
a = 10
a = $a\n
对单个的特殊字符的输出显示可以使用\实现
use strict;
use warnings FATAL => 'all';
use diagnostics; $a = 10;
print "\$a = $a\n";
——7、文档输出
$b = <<"EOF";
这是一个 Here 文档实例,使用双引号。
可以在这输如字符串和变量。
例如:a = $a
EOF
【perl】01的更多相关文章
- 【LeetCode】01 Matrix 解题报告
[LeetCode]01 Matrix 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/01-matrix/#/descripti ...
- 【hdu3080】01背包(容量10^7)
[题意]n个物品,有wi和vi,组成若干个联通块,只能选取一个联通块,问得到m的价值时最小要多少空间(v).n<=50,v<=10^7 [题解] 先用并查集找出各个联通块. 这题主要就是v ...
- 【u115】&&【t031】 01迷宫
01迷宫(maze01) Time Limit: 1 second Memory Limit: 128 MB [问题描述] 有一个仅由数字0与1组成的n×n格迷宫.若你位于一格0上,那么你可以移动到相 ...
- 【C】 01 - 再学C语言
“C语言还用再学吗?嵌入式工程师可是每天都在用它,大家早就烂熟于心,脱离语言这个层面了”.这样说不无道理,这门古老的语言以其简单的语法.自由的形式的而著称.使用C完成工作并不会造成太大困扰,所以很少有 ...
- 【算法】01分数规划 --- HNOI2009最小圈 & APIO2017商旅 & SDOI2017新生舞会
01分数规划:通常的问法是:在一张有 \(n\) 个点,\(m\) 条边的有向图中,每一条边均有其价值 \(v\) 与其代价 \(w\):求在图中的一个环使得这个环上所有的路径的权值和与代价和的比率最 ...
- 【整理】01. Fiddler 杂记
抓手机包步骤: Tools -- Fiddler Options -- Connections (默认)Fiddler listens on port:8888 (勾选)Allow remote co ...
- 【OracleDB】 01 概述和基本操作
实例概念: Oracle有一个特殊的概念 Oracle数据库 = 数据库 + Oracle文件系统 + Oracle实例 实例处理Oracle的请求,调用文件系统 然后返回结果响应给客户端 单实例和多 ...
- 【perl】企业微信发消息
https://open.work.weixin.qq.com/api/doc#90000/90135/90236 #!/usr/bin/env perl use strict; use warnin ...
- 【perl】simpleHTTP
类似Python SimpleHTTPServer #!/usr/bin/perl # https://metacpan.org/pod/HTTP::Server::Simple # https:// ...
- 【learning】01分数规划
问题描述 首先分数规划是一类决策性问题 一般形式是: \[ \lambda=\frac{f(x)}{g(x)} \] 其中\(f(x)\)和\(g(x)\)都是连续的实值函数,然后要求\(\lambd ...
随机推荐
- LeetCode 40. Combination Sum II 组合总和 II (C++/Java)
题目: Given a collection of candidate numbers (candidates) and a target number (target), find all uniq ...
- 接口自动化之request模块
1.安装 方式一.命令行直接 pip install requests 方式二.PyCharm中,File >> Settings >> Project:Practice &g ...
- INFINI Labs 产品更新 | Easysearch 支持 SQL 查询、Console 告警功能支持邮件等多渠道
INFINI Labs 产品又更新啦~.本次更新概要如下:Easysearch 新增 SQL 插件和JDBC 驱动,支持 SQL 查询,支持 SQL 常用函数等:Console 针对告警功能做了升级优 ...
- FreeRTOS简单内核实现5 阻塞延时
0.思考与回答 0.1.思考一 为什么 FreeRTOS简单内核实现3 任务管理 文章中实现的 RTOS 内核不能看起来并行运行呢? Task1 延时 100ms 之后执行 taskYIELD() 切 ...
- 【Playwright+Python】系列教程(一)环境搭建及脚本录制
前言 看到这个文章,有的同学会说: 六哥,你为啥不早早就写完python系列的文章. 因为有徒弟需要吧,如果你也想学自学,那这篇文章,可以说是我们结缘一起学习的开始吧! 如果对你有用,建议收藏和转发! ...
- Primer Premier 6安装使用教程
Primer Premier是一款专业级PCR引物设计工具软件,专为科研及分子生物学实验定制PCR扩增.测序探针及杂交引物.该程序运用尖端演算法评估引物的特异性.二聚体可能性和熔解温度等核心属性,确保 ...
- 03-CSS初步介绍
01 CSS编写规则 1.1 内联样式 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- 为什么不推荐使用Linq?
相信很多.NETer看了标题,都会忍不住好奇,点进来看看,并且顺便准备要喷作者! 这里,首先要申明一下,作者本人也非常喜欢Linq,也在各个项目中常用Linq. 我爱Linq,Linq优雅万岁!!!( ...
- 海思SDK 学习 :000-海思HI35xx平台软件开发快速入门之背景知识
背景 参考自:<HiMPP V3.0 媒体处理软件开发参考.pdf> 由于在音视频处理领域,海思芯片占有全球市场的很大份额.当我们选择使用海思芯片开发时,程序开发模型主要是围绕HIMPP( ...
- 一招解决github访问慢的问题
之前我在网上搜过解决办法,其中一个是修改 hosts 文件,但是效果不太理想.我在这里给大家推荐github上的一个开源项目:FastGithub .用了这个之后,效果就比较理想了,次次都能访问到 ...