• 初尝 Perl


    本文将阐述以下几方面内容:

    1、什么是Perl

    2、Perl有什么用

    3、Windows 下的Perl环境搭建

    4、Perl 版Hello World

    5、Perl 语法梗概

    6、一些参考资料


    什么是Perl

    logoPerl 是一门由 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

    image

    如出现上图所示信息表示 Perl 已安装成功

     

    Perl 版Hello World

    1、打开一个文本编辑器(如Notepad++),输入如下内容

    # perl-w
    print "Hello World";

    在名利提示符下运行结果为(代码保存在 1.pl 中)

    image

    上面的 # 是注释符号, 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的所有小写字母

    image

     

    2、每个语句以分号“;”结束

     

    3、简单的数学运算

    # perl-w
    $a = 2;
    $b = 3;
    print $a + $b;    # 加法
    print "
    ";
    print $a - $b;    # 减法
    print "
    ";
    print $a % $b;  # 模运算
    print "
    ";
    print $a ** $b; # 幂运算

    image

     

    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 都是字符串转换为数字都会失败,返回相同的默认值,所以相等
    image
    # perl-w
    $a = "a";
    $b = "b";
    if($a eq $b){
        print "两变量相等";        
    } else {
        print "两变量不相等";
    }

    image

    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;
    }

    image

    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 "
    ";
        return $_[0] + $_[1];    # 带返回值
    }
    print add(3,4);

    image

     

     

    一些参考资料

    1、小骆驼书

    Perl

    2、大骆驼书

    image

    3、Perl 官网 http://www.perl.org/

     

    本文完

  • 相关阅读:
    redis启动
    supervisor thinkphp6 qune
    iview table header cell tooltip; iview表格 表头、单元格文字提示 ;iview 表格 悬浮提示
    .net mvc 中引入 echarts dataTool prepareBoxplotData
    iview table 初始化为null问题
    sqlserver 视图 EF无法从数据更新模型
    sql 空格变问号;sql 无法 去掉 空格 ;sql rtrim 失效;(转载)
    MongoDB的备份与恢复(转载)
    jQuery的deferred对象详解(转载)
    今天,我们小公司的服务器被黑了!!!
  • 原文地址:https://www.cnblogs.com/Aphasia/p/4221630.html
Copyright © 2020-2023  润新知