Perl学习笔记[1]
小骆驼书: 1.某些情况下,你可能在一台机器上书写程序,然后在另一台机器上运行。如果需要这样做,确定传输文件时选的是“文本”(text)模式或“ASCII”模式而非“二进制”(binary)模式。选择这种方法的原因是,不同机器有不同的文本格式。如果不
这样做,可能得到不一致的结果。
2.标量是Perl 中最简单的数据类型,大多数的标量是数字(如255 或3.25e20)或者字符串.
(1)无论是整数还是浮点数,在perl内部都把它当成是双精度浮点数来处理,也就是说在perl内部没有整数值。
1e2=100,1E2=100,3982734927349=3_982_734_927_349
(2)同许多其它语言一样,Perl也允许使用非10为底的数字。八进制以0开头,十六进制以0x开头,二进制0b开头。在十
六进制中A到F(或者a 到f)分别表示10到15:
$oct=oct('0377'); $hex=hex("0xff");
--函数里面的单/双引号不能省略,即必须保证里面是字符串形式,否则得不到准确的十进制值255
(3) $val = oct(EXPR)
Interprets EXPR as an octal string and returns the corresponding value. (If EXPR happens to start off with "0x", interprets it as a hex string. If EXPR starts off with "0b", it is interpreted as a binary string.)
(4)数字操作符
模数运算符%:两个操作数首先变成它们对应的整数值,如10.5%3.2 转换为10%3后再计算。
2**3,表示2的3次方,等于8。
3.字符串
(1)字符串是一串字符(如hello)。字符串可能是字符的任意组合。最短的字符串不含任何字符。最长的字符串,可以填满
整个内存。这符合Perl 的哲学,只要有可能就不加任何内嵌的限制。
(2)Perl 中字符串可以包含任意字符,意味着利用字符串(string)你可以创建,遍历,操作二进制数据,而利用别的方法可能遇到极大的困难。例如,你可以把要更新的图片或编译好的程序放入一个Perl的字符串变量中,做完相应的修改后再写回去。
(3)单引号字符串中的\n不会被当作换行符来处理,其仅仅是两个字符\和n。只有在反斜线(\)后面接的是\或单引号’,其才会被当作特殊符号来处理。
(4)双引号字符串另一个性质是可进行变量内插,这是说当使用字符串时,如果字符串中含有变量名,将由变量的当前值替换
它。
(5)字符串可由.操作符连接(只是一个点.) 。
(6)一个特殊的操作符是字符串重复操作符(string repetition operator),由小写的字母x表示。这种操作能把操作符左边字符串重复操作符右边数字那么多次:“fred”x 3 # “fredfredfred”.
(7)数字和字符串之间的自动转换.
当在需要数字的地方使用了字符串(如,乘法),Perl 将自动把字符串转换为其等价的数字,就像输入的是十进制浮点数一
样。因此“12”* “3”将给出36。后面的非数字部分和前面的空格将被去掉,如“12fred34”* “3”将给出36 而不会用任何
提示。在极端情形,当一个不含任何数字的字符串将别转换为0。如,将“fred”当作数字来使用时。
(8)Perl 内嵌的警告(warnings)
#! /usr/bin/perl –w
use warnings;
use diagnostics;
4.运算符
(1)运算的优先级
4**3**2《==》4**(3**2) --**是右结合的,所以右边的先进行计算。
(2)比较运算符
数字的比较:>,
页:
[1]