|
1 Perl中所有数字内部格式一致,只有双精度浮点数(Perl内部没有整数值)。
2 Perl中允许用下划线来分隔比较长的整数,如612980400283768和612_980_400_283_768是相同的值。
3 Perl中的非十进制整数:八进制以0开头,十六机制以0x开头,二进制以0b开头。
4 Perl中的数字操作符除加减乘除之外,还有模数运算符(%)和指数操作符(**)。对于%,两个操作数首先变成对应的整数值,如10.5%3.2首先变成10%3后再计算。在模数运算中,如果有一个操作数为负数,其结果和Perl的具体实现有关。另外,通常不能进行一个负数的非整数次方的运算(这将产生一个复数),除非有了Math::Complex模块。
5 单引号字符串
单引号不是字符串的一部分,但Perl可以用它辨别字符串的开始和结束。除了单引号或者反斜线(包括换行字符,如果字符串在下一行继续)之外的任何字符都表示它自身。要得到一个反斜线,可以把两个反斜线放在一起;要得到单引号,需要在单引号之前加上反斜线。单引号字符串中的/n不会被当作换行符来处理,其仅仅是两个字符/和n。只有在反斜线后面接的是/或者是单引号'才会被当作特殊字符来处理。
6 双引号字符串
双引号字符串中/n为换行符。双引号中的转义字符:
------------------------------
| 符号 | 含义 |
------------------------------
| /n | 换行 |
------------------------------
| /r | 回车 |
------------------------------
| /t | 制表符 |
------------------------------
| /f | formfeed |
------------------------------
| /b | 退格 |
------------------------------
| /a | 响铃 |
------------------------------
| /e | escape(ASCII中的escape字符) |
------------------------------
| /007 | 任何八进制值(这里是007=bell) |
------------------------------
| /x7f | 任何十六进制值(这里是007=bell) |
------------------------------
| /cC | 一个控制符(这里是Ctrl+c) |
------------------------------
| // | 反斜线 |
------------------------------
| /" | 双引号 |
------------------------------
| /l | 下个字符小写 |
------------------------------
| /L | 接下来的字符均小写直到/E |
------------------------------
| /u | 下个字符大写 |
------------------------------
| /U | 接下来的字符均大写知道/E |
------------------------------
| /Q | 在non-word字符之前加上/,直到/E |
------------------------------
| /E | 结束/L, /E和/Q |
------------------------------
双引号字符串的另一个性质是可以进行变量内插,也即当使用字符串时,如果字符串中含有变量名,将由变量的当前值替换它。
7 字符串操作符
字符串可由.操作符连接。
字符串重复操作符为小写字母x,如"fred" x 3 #"fredfredfred", 5 x 4 #实际上是"5555"。
8 数字和字符串之间的自动转换
Perl将在需要的时候根据标量值之间的操作符自动进行数字和字符串之间的自动转换。
9 Perl中的标量变量都形如$fred。当一个字符串由双引号括起来时,如果变量前没有反斜线,则变量的值会被替换(如果一个变量未被赋值,则将使用空值)。Perl提供了分隔符{}将变量名括起来,如:
$what="brontosaurus steak";
$n=3;
print "fred ate $n $whats./n"; #输出不是steaks,而是$whats的值
print "fred ate $n ${what}s./n"; #现在使用$what的值。
10 Perl中没有Boolean类型,但可以利用一下几条法则帮助记忆:
如果值为数字,0是false,其余为真;
如果值为字符串,则空串('')为false,其余为真;
如果值的类型既不是数字又不是字符串,则将其转换为数值或字符串再利用上述规则。
11 行输入运算符:<STDIN>。<STDIN>作为标量值来使用,Perl每次在标准输入中读入文本下一行,将其传给<STDIN>。利用<STDIN>读入的字符串行尾是有换行符的,可以利用chomp函数来去掉。chomp是一个函数,作为函数它有一个返回值,为移除的字符的个数。在使用chomp时,可以使用或不使用(),这又是perl中的一条通用规则:除非移除它们会改变含义,否则括号是可以省略的。如果结尾有两个或两个以上的换行符,chomp仅去掉一个。
12 undef值
Perl中,变量在第一次赋值前有一个特殊值undef,如果该变量是数值型,则undef为0;如果是字符串,则undef为空串。
13 defined函数 |
|
|
|
|
|
|