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的更多相关文章

  1. 【LeetCode】01 Matrix 解题报告

    [LeetCode]01 Matrix 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/01-matrix/#/descripti ...

  2. 【hdu3080】01背包(容量10^7)

    [题意]n个物品,有wi和vi,组成若干个联通块,只能选取一个联通块,问得到m的价值时最小要多少空间(v).n<=50,v<=10^7 [题解] 先用并查集找出各个联通块. 这题主要就是v ...

  3. 【u115】&&【t031】 01迷宫

    01迷宫(maze01) Time Limit: 1 second Memory Limit: 128 MB [问题描述] 有一个仅由数字0与1组成的n×n格迷宫.若你位于一格0上,那么你可以移动到相 ...

  4. 【C】 01 - 再学C语言

    “C语言还用再学吗?嵌入式工程师可是每天都在用它,大家早就烂熟于心,脱离语言这个层面了”.这样说不无道理,这门古老的语言以其简单的语法.自由的形式的而著称.使用C完成工作并不会造成太大困扰,所以很少有 ...

  5. 【算法】01分数规划 --- HNOI2009最小圈 & APIO2017商旅 & SDOI2017新生舞会

    01分数规划:通常的问法是:在一张有 \(n\) 个点,\(m\) 条边的有向图中,每一条边均有其价值 \(v\) 与其代价 \(w\):求在图中的一个环使得这个环上所有的路径的权值和与代价和的比率最 ...

  6. 【整理】01. Fiddler 杂记

    抓手机包步骤: Tools -- Fiddler Options -- Connections (默认)Fiddler listens on port:8888 (勾选)Allow remote co ...

  7. 【OracleDB】 01 概述和基本操作

    实例概念: Oracle有一个特殊的概念 Oracle数据库 = 数据库 + Oracle文件系统 + Oracle实例 实例处理Oracle的请求,调用文件系统 然后返回结果响应给客户端 单实例和多 ...

  8. 【perl】企业微信发消息

    https://open.work.weixin.qq.com/api/doc#90000/90135/90236 #!/usr/bin/env perl use strict; use warnin ...

  9. 【perl】simpleHTTP

    类似Python SimpleHTTPServer #!/usr/bin/perl # https://metacpan.org/pod/HTTP::Server::Simple # https:// ...

  10. 【learning】01分数规划

    问题描述 首先分数规划是一类决策性问题 一般形式是: \[ \lambda=\frac{f(x)}{g(x)} \] 其中\(f(x)\)和\(g(x)\)都是连续的实值函数,然后要求\(\lambd ...

随机推荐

  1. C# .NET6 .NET CORE EXCEL 导入和导出

    使用NPOI导入.xlsx遇到"EOF in header"报错,网上找好很多方法,没解决,最后换成EPPlus.Core导入. 导出默认是.xls. NPOI 操作类: usin ...

  2. PIC18 bootloader之RS485 bootloader

                                  了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制b ...

  3. 在线SQL格式化工具推荐

    在线SQL格式化工具,一键美化.整理您的SQL代码,支持多种数据库语法格式化.有效提升代码可读性,方便团队协作与快速定位问题,是开发人员必备的SQL编程助手,让复杂查询更清晰,更易于维护. 在线SQL ...

  4. bean反射比较两个bean属性值的修改明细

    1.期望:将[username]从'111'改成'222';将[address]从'这是一个测试数据'改成'这是一个真实数据'; 2.导入jar <dependency> <grou ...

  5. 算法金 | 没有思考过 Embedding,不足以谈 AI

    大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 在当今的人工智能(AI)领域,Embedding 是一个不可或缺的概念 ...

  6. Linux 内核:RCU机制与使用

    Linux 内核:RCU机制与使用 背景 学习Linux源码的时候,发现很多熟悉的数据结构多了__rcu后缀,因此了解了一下这些内容. 介绍 RCU(Read-Copy Update)是数据同步的一种 ...

  7. 【换源】git命令行迁移仓库

    直接git clone的话,查看本地分支,会只有默认主分支,可能是master,也可以能是设置的. 查看所有分支 git branch -a * master remotes/origin/HEAD ...

  8. 【排行榜】Carla leaderboard 排行榜 运行与参与手把手教学

    此分支主要供参与leaderboard排名使用,介绍如何构建队伍,提交自己代码,此部分较为简单,主要是基本教学与演示:后续可以参考更多的开源代码进行学习等. 基本参与此榜单的大多都是学校和实验室,还是 ...

  9. 缩小50%,Mini版T3/A40i核心板,让您的设备更小巧!

    小尺寸核心板给用户带来何种价值? 创龙科技常收到用户对于小尺寸核心板的需求反馈,尤其在电力数据采集器.电力DTU.电力通讯管理机.运动控制器.工业HMI.工业网关等工业设备中. 小尺寸核心板3大优势将 ...

  10. P3749 题解

    既然是求最大值而且有收益有代价,所以考虑建立一个最大权封闭子图模型. 收益 正的美味值是收益,所以假若 \(d_{i,j} \geq 0\) 则建边 \((s,pos_{i,j},d_{i,j})\) ...