设为首页 收藏本站
查看: 1307|回复: 0

[经验分享] 初尝 Perl

[复制链接]

尚未签到

发表于 2015-12-26 12:28:23 | 显示全部楼层 |阅读模式
  本文将阐述以下几方面内容:
  1、什么是Perl
  2、Perl有什么用
  3、Windows 下的Perl环境搭建
  4、Perl 版Hello World
  5、Perl 语法梗概
  6、一些参考资料
  
  
  什么是Perl
   DSC0000.png Perl 是一门由 Larry Wall(拉里·沃尔)设计并实现的一门脚本语言,Larry Wall设计这门语言的最初的目的为了让UNIX 上得报表处理工作变得更方便。Perl 第一版的发行时间为 1987年(Python第一版的发行时间为 1991年、Ruby第一版的发行时间为 1995年,这三种程序设计语言经常被放在一起做比较)。
  Perl的来自单词Pearl(珍珠的意思),或许在设计者 Larry Wall 眼里,Perl如珍珠般珍贵 DSC0001.png
  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
DSC0002.png
  如出现上图所示信息表示 Perl 已安装成功
  
  
  Perl 版Hello World
  1、打开一个文本编辑器(如Notepad++),输入如下内容
  
# perl-w
print "Hello World";
  在名利提示符下运行结果为(代码保存在 1.pl 中)
DSC0003.png
  上面的 # 是注释符号, 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的所有小写字母
DSC0004.png
  
  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; # 幂运算
DSC0005.png
  
  4、比较操作符 及 if 分支结构

比较数字字符串含义
等于==eq判断相等与否
不等!=ne判断不等与否
小于<lt判断小于与否
大于>gt判断大于与否
小于或等于<=le判断不大于与否
大于或等于>=ge判断不小于与否
比较<=>cmp相等为0,前者大为1,否则为-1
  也许读者看到这个会奇怪,为什么有两套比较操作符,其实我也很奇怪,但是Perl设计人就是这样设计的,咱不计较。这两组比较符要求待比较参数先转换为合适的参数类型后比较。光说不练假把式看代码:



# perl-w
$a = &quot;a&quot;;
$b = &quot;b&quot;;
if($a == $b){
print &quot;两变量相等&quot;;        
} else {
print &quot;两变量不相等&quot;;
}
# 会打印两变量相等 因为$a 和 $b 都是字符串转换为数字都会失败,返回相同的默认值,所以相等
DSC0006.png


# perl-w
$a = &quot;a&quot;;
$b = &quot;b&quot;;
if($a eq $b){
print &quot;两变量相等&quot;;        
} else {
print &quot;两变量不相等&quot;;
}
DSC0007.png
  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 &quot; &quot;;
}
$var += 1;
}
DSC0008.png
  do-while 略



# perl-w
# 打印1-100 被3整除的数
for($var = 1;$var <=100;$var++){
if($var % 3 == 0) {
print $var;
print &quot; &quot;;
}
}
  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 &quot; &quot;;
}
}
  在 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 &quot; &quot;;
}
print &quot;\n&quot;;
return $_[0] + $_[1];    # 带返回值
}
print add(3,4);
DSC0009.png
  
  

  一些参考资料

  1、小骆驼书
DSC00010.png
  2、大骆驼书
DSC00011.png
  3、Perl 官网 http://www.perl.org/
  
  本文完

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-156544-1-1.html 上篇帖子: perl打造自己的黑客工具 [转] 下篇帖子: C,Ruby, Io, PHP, Python, Lua, Java, Perl, Applescript, TCL, ELisp, Javascript, O
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表