初尝 Perl
本文将阐述以下几方面内容:
1、什么是Perl
2、Perl有什么用
3、Windows 下的Perl环境搭建
4、Perl 版Hello World
5、Perl 语法梗概
6、一些参考资料
什么是Perl
Perl 是一门由 Larry Wall(拉里·沃尔)设计并实现的一门脚本语言,Larry Wall设计这门语言的最初的目的为了让UNIX 上得报表处理工作变得更方便。Perl 第一版的发行时间为 1987年(Python第一版的发行时间为 1991年、Ruby第一版的发行时间为 1995年,这三种程序设计语言经常被放在一起做比较)。
Perl的来自单词Pearl(珍珠的意思),或许在设计者 Larry Wall 眼里,Perl如珍珠般珍贵
Perl的吉祥物为骆驼据说是因为Oreilly出版的畅销书Programming Perl的封面是一匹骆驼,Perl社区就采用了骆驼作为Perl语言的吉祥物。
Perl 有什么用
引用维基百科的说法,Perl的用途很广,除了CGI以外,Perl还被用于图形编程、系统编程、网络编程、金融、生物等领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。在CPAN上有大量优秀Perl的库。在Linux和Mac OS 上都是内置Perl的。总结为一句话——Perl很有用,当需要脚本语言的时候,不妨考虑下Perl。这些我们了解即可。
本篇文章为初尝Perl,定位为了解Perl的梗概,博主目前现实工作中也没用到Perl,仅仅当一个知识储备,以后用到Perl的时候再深入学习一番。
Windows 下的Perl环境搭建
1、访问 http://www.perl.org/ 下载Perl Windows的实现版本,这里有两个版本(Strawberry Perl 和 ActiveState Perl)这两个版本没什么大的区别,博主选择了后者ActiveState Perl 5.20
2、安装 ActiveState Perl 5.20 ,一路默认安装即可
3、验证 Perl 是否安装成功,在命令提示符下输入 perl –v
如出现上图所示信息表示 Perl 已安装成功
Perl 版Hello World
1、打开一个文本编辑器(如Notepad++),输入如下内容
# perl-w
print "Hello World";
在名利提示符下运行结果为(代码保存在 1.pl 中)
上面的 # 是注释符号, perl –w 是要求 perl 显式 Warmming 信息的选项
Perl 语法梗概
1、 变量定义,在 Perl下有好几种定义变量的方法,我捡最常用两种说明:
单数变量:以$ 打头,仅表示一个变量对象
复数变量:以@打头,表示一个数组
例1:单数变量
# perl-w
$pi = 3.141592;
print $pi;
例2:复数变量
# perl-w
@digital = (a..z);
print @digital; #打印a到z的所有小写字母
2、每个语句以分号“;”结束
3、简单的数学运算
# perl-w
$a = 2;
$b = 3;
print $a + $b; # 加法
print "\n";
print $a - $b; # 减法
print "\n";
print $a % $b; # 模运算
print "\n";
print $a ** $b; # 幂运算
4、比较操作符 及 if 分支结构
比较 | 数字 | 字符串 | 含义 |
等于 | == | eq | 判断相等与否 |
不等 | != | ne | 判断不等与否 |
小于 | < | lt | 判断小于与否 |
大于 | > | gt | 判断大于与否 |
小于或等于 | <= | le | 判断不大于与否 |
大于或等于 | >= | ge | 判断不小于与否 |
比较 | <=> | cmp | 相等为0,前者大为1,否则为-1 |
也许读者看到这个会奇怪,为什么有两套比较操作符,其实我也很奇怪,但是Perl设计人就是这样设计的,咱不计较。这两组比较符要求待比较参数先转换为合适的参数类型后比较。光说不练假把式看代码:
# perl-w
$a = "a";
$b = "b";
if($a == $b){
print "两变量相等";
} else {
print "两变量不相等";
}
# 会打印两变量相等 因为$a 和 $b 都是字符串转换为数字都会失败,返回相同的默认值,所以相等
# perl-w
$a = "a";
$b = "b";
if($a eq $b){
print "两变量相等";
} else {
print "两变量不相等";
}
if分支包括 if 、if –else 、if –若干个elsif-else 3种
5、循环
Perl 有4种循环 while 、do-while、for、foeach
# perl-w
# 打印1-100 被3整除的数
$var = 1;
while($var <= 100){
if($var % 3 == 0){
print $var;
print " ";
}
$var += 1;
}
do-while 略
# perl-w
# 打印1-100 被3整除的数
for($var = 1;$var <=100;$var++){
if($var % 3 == 0) {
print $var;
print " ";
}
}
foreach 的格式为:
foreach $i (@some_list){
statement_1;
…
statement_n;
}
# perl-w
# 打印1-100 被3整除的数
# (1..100)返回的是一个数组
foreach $var ((1..100)){
if($var % 3 == 0){
print $var;
print " ";
}
}
在 for 和 foreach 中有两个循环控制关键字——last 和 next。 last 相当于break,next 为 continue,有C基础的人都能看懂什么意思。
6、函数
函数的定义为用关键 sub 声明
sub methodName{
statement_1;
…
statement_n;
}
参数列表存在 @_ 中
如函数带返回值,结尾用 return 语句接口
看代码
# perl-w
sub add{
foreach $para (@_) {
print $para;
print " ";
}
print "\n";
return $_[0] + $_[1]; # 带返回值
}
print add(3,4);
一些参考资料
1、小骆驼书
2、大骆驼书
3、Perl 官网 http://www.perl.org/
本文完
初尝 Perl的更多相关文章
- 初尝Perl -- 使用aapt给apk软件包批量重命名
不知道什么是Perl猛戳这个链接 http://zh.wikipedia.org/wiki/Perl 任务: 随着手机/平板的各方面性能的不断发展(CPU,内存 ...
- 初尝Windows 下批处理编程
本文叫“ 初尝Windows 下批处理编程”是为了延续上一篇“初尝 Perl”,其实对于博主而言批处理以及批处理编程早就接触过了. 本文包括以下内容 1.什么是批处理 2.常用批处理命令 3.简介批处 ...
- seajs初尝 加载jquery返回null解决学习日志含示例下载
原文地址:http://www.tuicool.com/articles/bmuaEb 如需demo示例,请点击下方链接下载: http://yunpan.cn/cVEybKs8nV7CF 提取码 ...
- .NET领域驱动设计—初尝(三:穿过迷雾走向光明)
开篇介绍 在开始这篇富有某种奇妙感觉的文章之旅时我们先短暂的讨论一下关于软件开发方法论的简要: 纵观软件开发方法论,从瀑布模型.螺旋模型.RUP(统一软件开发过程).XP(极限编程).Agile(敏捷 ...
- 初尝微信小程序2-Swiper组件、导航栏标题配置
swiper 滑块视图容器. 很多网页的首页都会有一个滚动的图片模块,比如天猫超市首页,滚动着很多优惠活动的图片,用来介绍优惠内容,以及供用户点击快速跳转到相应页面. Swiper不仅可以滚动图片,也 ...
- 分布式设计《初尝memcached》
之前听说过高性能的分布式缓存开源工具,但一直没有真正接触过,如今接触的产品中实用到过分布式缓存.所以决定一探到底.memcached是一个优秀的开源的分布式缓存工具.也是眼下比較火热的分布 ...
- .NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)
.NET领域驱动设计—初尝(一:疑问.模式.原则.工具.过程.框架.实践) 2013-04-07 17:35:27 标签:.NET DDD 驱动设计 原创作品,允许转载,转载时请务必以超链接形式标明 ...
- Github原生CI/CD,初尝Github Actions
Github 原生 CI/CD,初尝 Github Actions Intro Github 目前已经推出了自己的 CICD 服务 -- Github Actions,而且比微软的 Azure Dev ...
- golang快速入门(五)初尝web服务
提示:本系列文章适合对Go有持续冲动的读者 初探golang web服务 golang web开发是其一项重要且有竞争力的应用,本小结来看看再golang中怎么创建一个简单的web服务. 在不适用we ...
随机推荐
- 【CSS】Beginner6:Border
1.border-style:solid实线,dashed虚线,double双线,dotted点状,groove凹槽,ridge垄状,inset,outset 2.border0-width:bord ...
- Clean Code – Chapter 6 Objects and Data Structures
Data Abstraction Hiding implementation Data/Object Anti-Symmetry Objects hide their data behind abst ...
- C++中构造函数和析构函数调用的时机
今天看书忽然对这个地方有点模糊,尤其是析构函数在调用默认的析构函数和用户自己覆写的析构函数的时候有点意识模糊呢.写段代码总结下 #include <iostream> using name ...
- iOS设备的硬件适配 (关于armv6, armv7, armv7s ) <转>
<转> http://blog.csdn.net/smking/article/details/8148702 1.OpenGL ES版本支持 iPhone:iPhone 3G以下(包 ...
- Java同步块(synchronized block)使用详解
Java 同步块(synchronized block)用来标记方法或者代码块是同步的.Java同步块用来避免竞争.本文介绍以下内容: Java同步关键字(synchronzied) 实例方法同步 静 ...
- poj 3177 Redundant Paths【求最少添加多少条边可以使图变成双连通图】【缩点后求入度为1的点个数】
Redundant Paths Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11047 Accepted: 4725 ...
- 综合而强大的DATASNAP
从DELPHI2009开始,DATASNAP技术上完全是全新的架构,多层架构不再基于微软的COM,摆脱COM就等于摆脱了WINDOWS的束缚. TCP/IP通信不再需要先开启scktsrvr.exe程 ...
- CoreLocation框架的使用
CoreLocation框架使用 一.地图和定位的简介 1.应用场景 周边:找餐馆/找KTV/找电影院(团购APP) 导航:根据用户设定的起点和终点,进行路线规划,并指引用户如何到达(地图APP) 2 ...
- 【开发工具 - Git】之Git版本回退
这篇博客主要记录了关于 查看记录.版本回退.添加标签.删除文件 的操作 1.查看文件修改情况: 可以通过 git diff a.java查看a.java文件自从上次提交后的修改情况,如果自从上次提交之 ...
- AptanaStudio3 安装在win7 64bit时遇到的问题
最近在研究前端语言,想起可以使用AptanaStudio这个前端利器,没想到安装时却遇到波折.先从网上下载了Aptana版本 3.6.0 64bit问题1 安装进度缓慢,第一次安装时,显示downlo ...