Perl 学习笔记 --- 16

来源:互联网 发布:c语言符号表 编辑:程序博客网 时间:2024/05/21 09:35

 

第16章:一些高级的技术

 

 

16.1 利用eval捕获错误

 

防止某程序块,促使程序崩溃。

 

其形式如下:

 

eval{expression};

 

 

 

16.2 使用grep在列表得到元素

 

其形式如下:

@ArrayName = grep{expression} 0..n

 

例如:

 

my @odd_numbers = grep {$_%2} 1..1000

 

相当于:

my @odd_numbers;

 

foreach(1..1000) {

       push@odd_numbers, $_, if $_ % 2;

}

 

 

 

 

16.3 使用map对列表项进行交换

 

其形式如下:

@ArrayName = map{expression}@arrayName

 

例如:

my @data = (4.75, 1.5, 2, 1234, 6.9456,12345678.9, 29.95);

my @formatte_data = map{&big_money($_)} @data;

 

 

等同于:

my @data = (4.75, 1.5, 2, 1234, 6.9456,12345678.9, 29.95);

my @formatted_data;

 

foreach (@data) {

       push@formatte_data, @big_money($_);

}

 

sub big_money {

       my$number = sprintf “%.2f”,shift @_;

       1while $number =~ s/^(-?\d)(\d\d\d)/$1,$2/;

       $number=~ s/^(-?)/$1\$/;

       $number;

}

 

 

 

16.4 不用双引号的hash keys

 

不建议使用。

 

 

 

16.5 Slices

 

 

16.5.1 Array Slice

 

对一个列表做索引。

 

例如:

my ($card_num, $count) = (split /:/)[1,3,5];

 

上述索引值将元素1、3和元素5从列表中取出,将他们按照3个元素的列表值返回。

 

-----------------------------------------------------------------------------------------------

全书,完毕!

本人已把此学习笔记上传“我的资源”(CSDN)上,有需要可以下载学习!

                                  -----------xiaobin--- 2012.2.26

 ------------------------------------------------------------------完美的分割线----------

 

原创粉丝点击