Study 《Perl Cookbook》
1: 子串截取
$value = substr($string, $offset, $count);
$value = substr($string, $offset);
substr($string, $offset, $count) = $newstring;
substr($string, $offset, $count, $newstring); # 与上一条语句等价
substr($string, $offset) = $newtail;
某些情况下使用unpack函数更方便,虽然unpack是只读的,但是效率更高,一次你可以取出多个子串来
# 先取5字节,跳过3字节,再取2个8字节,最后取剩下的
# (注意: 只支持ASCII,不支持Unicode)
($leading, $s1, $s2, $trailing) = unpack("A5 x3 A8 A8 A*", $data);
# 按每5字节分割为数组
@fivers = unpack("A5" x (length($string)/5), $string);
# 分割为单字符数组
@chars = unpack("A1" x length($string), $string);
2. 设置初始值
# 将$b的值赋给$a,如果$b不为真,则将$c的值赋给$a
$a = $b || $c;
# 当$x不为真时,将$y的值赋给$x
$x ||= $y;
当 0, "0", 和 "" 是变量的有效值的时候,可以这样定义变量:
# 将$b的值赋给$a,如果$b没有被定义,则将$c的值赋给$a
$a = defined($b) ? $b : $c;
# 将来perl会支持“新的”或定义操作符
$a = $b // $c;
3.不用临时变量交换值
($VAR1, $VAR2) = ($VAR2, $VAR1);
实际上不止可以这样交换2个变量,可以直接交换多个变量,非常方便吧
4.字符与值的转换
$num = ord($char);
$char = chr($num);
To Be Continue.......