perl语言的学习(一)

目录

 

1、标量数据

1.1、数字类型的标量

1.1.1、浮点数直接量

1.1.2、整数直接量

1.2字符串

1.2.1、单引号内的字符串直接量(single-quoted string literal)

1.2.2、双引号内的字符串直接量(double-quoted string literal)

2、if控制结构


1、标量数据

标量(scalar)是perl里面最简单的一种数据类型,对于大部分标量来说,要么是数字,要么是由字符组成的序列(字符串)。在perl中这两者大多情况下都是可以在内部转换的。-----字符串就是独立的一个标量值

标量可以存储在标量变量里,也可以从文件和设备读取或者写入这些位置。

1.1、数字类型的标量

perl中的总是按"双精度浮点数(double-precision floating-point)"的要求来保存数字并进行运算。即所有数字的内部格式都相同。---双精度浮点数是当初用来编译perl的C编译器的double类型,可以表示15位的精度,有效值的范围从1e-100到1e100。

1.1.1、浮点数直接量

直接量(literal)是指某个数字在perl源代码中的写法,literal并非运算结果,也不是I/O操作的结果,只是直接键入程序源代码中的数据

1.1.2、整数直接量

perl允许在整数直接量中插入下划线,用于分开若干位数。eg:61_918_632_654----注意是下划线不是逗号,因为print输出一系列用逗号隔开的值

非十进制的整数直接量:八进制(octal)直接量以0开头十六进制(hexadecimal)直接量以0x开头二进制(binary)直接量以0b开头;若非十进制直接量的长度超过4个字符时,可以在其使用下划线。eg:0x1377——0b77;注:前置零的表示法只对直接量有效不能应用在字符串的自动转换

---perl中乘幂(exponentiation)操作符以双星号(**)表示;

1.2字符串

字符串遵循“无内置限制(nobuilt-inlimits)”的原则,即最长的字符串的长度没有限制,可以填满所以内存。

字符串由可输出的字母、数字及标点符号组成,其范围介于ASCII编码的32到126之间。

perl完全支持Unicode,若想在源代码中使用Unicode书写直接量的话,得手工加上utf8编译指令(use utf8)。统一码,也叫万国码、单一码(Unicode)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

1.2.1、单引号内的字符串直接量(single-quoted string literal)

单引号和反斜线字符外,单引号内所有字符都代表它们自己(包括换行符,如果该字符串表示多行的数据的话)。若想表示单引号本身和反斜线字符本身的话,需要在其前加一个反斜线字符表示转义。注:单引号内的\n并不是换行符,而是表示字面上的两个字符。

1.2.2、双引号内的字符串直接量(double-quoted string literal)

双引号内的反斜线可以转义许多控制字符(反斜线转义),或是用八进制或十六进制写法来表示任何字符。eg:\x{2744}:十六进制表示的Unicode代码点(这里的U+2744表示雪花形状的图形字符);

双引号内字符串的变量内插(variable interpolated)指在使用字符串时,将字符串内的变量名称替换成该变量当前的值。注:变量内插又称为双引号内插,因为它通常是在双引号(而非单引号)里其作用。

字符串操作符:.操作符:连接操作符(concatenation operator);字符串重复操作符(string repetition operator):小写的字母x,不满足交换(commutative)律;注:重复次数(右操作数)在使用前会先取整(4.8变成4),重复次数小于1时,会生成长度零的空字符串

操作符.将操作数视为字符串;操作符+将操作数视为数字;在最极端的情况下,完全不含数字的字符串会被转换成零eg:“12fred34”*“3”得到36,其中的fred变成0;

借助代码点创建字符:chr()函数表示将字符的代码点(code point)转换成对应字符;ord()函数表示把字符转换成代码点;

2、if控制结构

条件语句中的代码块周围一定要加上表示界限的花括号;任何标量值都可以成为if控制结构里的判断条件

perl没有专用的“布尔(Boolean)”数据类型,是靠一些简单的规则来判断:

1)如果是数字,0为假;所有其他数字都为真;

2)如果是字符串,空字符串(‘’)为假;所有其他字符串都为真;

3)如果既不是数字也不是字符串,那就先转换成数字或字符串再行判断;注:数字1和undef都是非常自然的表示真假的标量值

获取用户输入:“行输入”操作符<STDIN>;作用在STDIN文件句柄上的“行输入”操作符;注:由<STDIN>返回的字符串一般在末尾都会带有换行符;chomp()操作符去掉末尾换行符,内部的变量内容必须为字符串返回值是实际移除的字符数,若结尾处没有换行符,它什么都不做,直接返回零;eg:chomp($text=<STDIN>);

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值