Icebird

Delphi/C# - My favorite programming language

导航

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字节,再取28字节,最后取剩下的

# (注意: 只支持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.......

 

posted on 2007-04-26 00:23  Icebird  阅读(392)  评论(0编辑  收藏  举报