1.对于整数型literal,可以使用下划线分开,但其实还是同一个值,如:
6987654321
698_765_432_1
代表同一个literal值。
对于八进制和16进制数也是同样使用这种方法。
2.perl对于字符串没有长度的限制
但所用字符需为ASCII码的32—126之间的字符
3.单引号和双引号的区别:
单引号内除了单引号和反斜线外,其他字符都保持原意,即换行符也保持原意。另外如:/n并不表示换行在单引号内。
双引号内则可以表示控制字符以及用八进制或十六进制来表达其他任何字符。/n在双引号中就表示换行。
4.字符串和数字的自动转化
根据操作符的不同,字符串和数字可进行自动转化。如:
"12”*"3”中12,3原本是字符串,但会被自动转为数字12和3。
"12reg34"*"3"中的字符串12reg34会被转化为12,而不考虑其后的字串。
"Z".5*7中,会先做乘法运算,再做字符串连接得到Z35。
5.使用warning的用法
----$perl -w myprogram(运行程序时用,没运行一次就要重写一次)
下面是直接运行程序就会出现warning的信息的写法,直接在程序文件里改
----#!/usr/bin/perl -w
----#!/usr/bin/perl
use warning;
----#!/usr/bin/perl
use diagnostics;(信息更详细,相应的运行速度变慢)
6.perl中使用变量,包括定义和复制,引用变量都要在变量前加$符号。
7.双目赋值操作符(+=,-=等等)
双目赋值操作符是以某种方式直接更改变量的值,而不是运算后再覆盖原先的变量值。
8.perl中的if, while等语句块必须加花括号,即使语句块是只有一句语句.
if ($name gt 'fred') {print "'$name' comes after 'fred' in sorted order ./n";}
9.从STDIN中输入的值都会在末尾跟上一个换行符,可以使用chomp去除这个换行符。
$line=<STDIN>; #$line的最后一位就是换行符
chomp($line);
也可写成:
chomp($line=<STDIN>);
(注:如果字符串末尾有多个换行符,chomp也只删除一个换行符)
10.在perl中只要去除括号后不改变表达式的意义,括号可以不用
$line=<STDIN>; #$line的最后一位就是换行符
$bettery = chomp $line;
11.未被赋值的变量
未被赋值的变量其值实际上市undef。
如果变量被作为数字使用,则被解释成0;而如果变量被作为字符串用,则被解释成空字符串。
也可以自定义变量为undef,如:
$mm=undef;
注意:
许多操作符在参数越界或者不合理时,会返回undef,如果不特殊处理就会被当做0或者空字符串处理,如:
因为逐行读入时读到未见结尾,会返回undef,其实它是end-of-file的标志,此时就需要用defined函数来判断它并不是空字符,而是结束符。
$nn=<STDIN>;
if (defined($nn)) {
......
} else {
......
}