微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

《perl语言入门》之 第二章 标量数据

前言:

        定义:单复数概念----标量即单个事物,perl 用标量(perl 中最简单的一种数据类型)来称呼单件事物。 对大部分的标量来说,要么是数字,要么是由字符组成的串(perl 中不存在单个字符的概念,一个字符串整体就是单个事物)。

        关联:而标量之间又可以使用操作符(比如加法或字符串连接)来关联,产生的结果也是一个标量。
        来源和去处:标量可以存储在标量变量里,也可以从文件和设备读取(或写入这些位置)。

1.数字

        所有数字的内部格式都相同:不管是整数还是浮点数,在perl内部,均按“双精度浮点数”(即当初用来编译perl的C编译其的double类型,大部分现代系统均使用IEEE-745的格式)的要求来保存并进行运算。
浮点数直接量:        
        直接量的概念:直接量(literal:即字面值常量)是某个数值在perl 代码中的书写方式。直接量并非运算的结果,也不是I/O操作的结果,而是直接写在程序源代码里的数据。
        直接量的写法:一般写法:12.45;科学计数法:-6.5e24:负6.5乘以10的24次方(e也可以大写成E)。
        整数直接量:2001、-59、23455432等。
        注:为使看起来清晰,perl允许2345432也可以这样表示:2_345_54_32。
        非十进制的整数直接量:
                八进制:以0(零)开头,如037-----对应十进制:225
                十六进制:以0x(零)开头,如0xFF----对应十进制:225
                二进制:以0b(零)开头,0b11111111----对应十进制:225
                即以上三个数完全等价,且0b11111111也可以写成:0b1111_1111(清晰很多)。

         数字操作符:加法(+)、减法(-)、乘法(*)、除法(/)、取模(%)以及乘幂(**)等。

2.字符串

        定义:perl 中字符串可以由任意字符任意组合而成,且空字符(NUL)在perl 里并没有特殊意义,因为perl 会另行记住字符串的长度,而不是用空字符来表示字符串的结尾。
        特性:最短的字符串为不含任何字符的空字符串;最长的字符串长度则无限制-------符合perl 尽可能遵循的“无内置限制”原则
        形式:
                 单引号:
单引号内的字符串,除了单引号本身和反斜线字符外,单引号内所有字符均代表他们自己。
                 双引号:与单引号类似,但双引号内的字符串直接量的反斜线字符拥有更大更完整的能力,可以用来表示控制字符或用八进制(或十六进制)写法来表示任何字符。
                 注:反斜线转义通过反斜线加上各种不同的字符,以代表不同格式的数据。
         -----------------------------Linux 中单引号和双引号--------------------------------------------------------------
                  Linux中单引号和双引号都能关闭shell对特殊字符的处理,不同的是:
                  单引号更加严格,它关闭所有有特殊作用的字符。
                  而双引号会放开3个选项,具体为:(1)美元符号:$;(2)反引号:~;(3)反斜线:\   。即这三种字符不被忽略(有特殊意义)。
         ---------------------------------------结束------------------------------------------------------------------------------
          字符串操作符:.”:连接字符串;“* a”:重复连接,重复次数为a;
          数字与字符串之间的自动转换:根据具体情况,perl 自动转换。字符串转换为数字时:忽略字符串中前置空白符和非数字部分(若没有一个数字,则转换为0);数字
转换为字符串时,数字转换为(输出效果)相同的字符串------  一切无需程序员操心,perl 自动完成数据转换的工作

3.perl 内建警告信息

           当调试程序是,想显示程序警告信息,让perl 发出警告,使用 -w 选项,开启警告功能。如,perl  -w  my_program
           若想每次运行均启用警告功能,可以使用#!行来指明: #! /usr/bin/perl  -w
           注:在perl 5.6或者更高的版本中,还可通过启用 warnings这个编译命令来打开警告功能
                           #! /usr/bin/perl
         user  warnings;
            而若要查看更加详细的问题描述:perl -M  diagnostics 或use diagnostics;   -------该编译命令会到时程序启动变慢。

4.变量标量

           定义:变量即某个容器的名称,可以存储一个或多个值。
           perl 标识符一个字母或下划线为首,后面可以跟上多个字符、数字或下划线。且标量变量明前总有 $ 符号
           慎选变量名称:见名知意,保持一致。
           标量的赋值(=)和双目赋值操作符(+=、-=...)

5.用print 输出结果

            认向屏幕输出输出多个值时用逗号隔开
            字符串中的标量变量内插:双引号内或与单引号连接两种方式。
                    一些经验:通过转义字符可输出特殊字符以及变量本身;可以将变量用花括号围起来,避免歧义。
             操作符的优先级和结核性:
             比较操作符:

比较 数值 字符串
相等 == eq
不等 != ne
小于 < lt
大于 > gt
小于或等于 <= le
大于或等于 >= ge

6.if 控制结构

               布尔值:perl 中没有专用的“布尔”(Boolean)数据类型,它靠以下规则来判断:
                         (1)如果值为数字,0为假;其他为真。
                         (2)如果值为字符串,空字符串(’‘)为假;其他为真。
                         (3)如果既不是数字也不是字符串,就先转换成数字或字符串再进行判断。
                            注:由于字符串0 和数字0是同一标量值,所以perl一视同仁,均看成假。
                获取用户输入:最简单方式:<STDIN> ,如$line=<STDIN>为读取标准输入到标量值line中直到遇到换行符(即按下回车键)。
                         注:<STDIN> 返回的字符串,一般在最后都会跟有一个换行符(除非异常终止)。

7.chomp 操作符

         删除字符串结尾处的换行符。本质上是函数,返回值为:实际移除的字符数(一般为1)。

8. undef 变量和defined 函数

        undef:在首次被赋值前,变量的初始值就是特殊的undef(未定义--”空无一物“):一种数据类型:既不是数字也不是字符串。
        但是,undef在需要的时候可随机转换:当作为数字时,转换为零;当作为字符串时,转换为空字符串。
        例如,“行输入”操作符<STDIN>有时会返回undef:当读到文件结尾时,会返回undef 来表示这个状况。
        defined函数判断某个字符串或数字是否为undef。若是undef则返回假;否则返回真。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐