Perl 最佳实践(节选) --- 08

第八章:内置函数

零玖柒.

不要在sort中重新计算排序键。

零玖捌.

使用reverse逆转列表。

零玖玖.

使用scalar reverse逆转标量。

壹零零.

使用unpack取出固定宽度的字段。

壹零壹.

使用split取出简单的可变宽度的字段。

壹零贰.

使用Text::CSV_XS以取出复杂的可变宽度的字段。

壹零叁.

避免对字符串使用eval。

壹零肆.

考虑以Sort::Maker创建你的排序子程序。

壹零伍.

使用四自变量的substr,而不是1value的substr。

壹零陆.

妥善运用1value式的values。

壹零柒.

使用glob,不要用<…>。

壹零捌.

避免用原始的select选择非整数睡眠时间。

壹零玖.

map和grep一定要使用块。

壹壹零.

使用“非内置的内置函数”。

时间: 2024-10-12 22:40:17

Perl 最佳实践(节选) --- 08的相关文章

Perl 最佳实践(节选) --- 01

写在篇首: -------------------------------------------------------------------------------------- 此系列是Perl Best Practices的学习节选! 有兴趣的朋友可以使用邮箱和我沟通!(非常欢迎你的交流) 我的邮箱: veic_2005#163.com(把#替换为@) ------------------------------------------------------------------完

Perl 最佳实践(节选) --- 04

第四章:值和表达式 数据是缺乏生气的-- 有点像程序员. - Arthur Norman 零叁叁. 只对实际会插入的字符串使用插入用字符串界定符. l        创建字符串直接量而且想插入变量,使用双引号括住的字符串 my $spam_name = "$title$first_name $surname"; l        创建字符串直接量而且不想插入任何变量,使用单引号括住的字符串 my $spam_name = 'DrLawrence Mwalle'; l        如果

Perl 最佳实践(节选) --- 03

第三章:命名惯例 零贰叁. 构成标示符时要使用文法模板. l        变量以名词命名,前面不加或再加上多个形容词: variable → [adjective _ ]* noun l        hash和数组: look-variable → [adjective _ ]* noun preposition 零贰肆. 根据相关测试替布尔值命名. 零贰伍. 把存储引用的变量标上_ref后缀. 零贰陆. 数组以复数命名,而散列以单数命名. Perl有可用的格式化工具:perltidy. 网

Perl 最佳实践(节选) --- 17

第十七章:模块 贰壹柒. 先设计模块的接口. 贰壹捌. 把原有代码变成inline. 把重复的代码放到子程序. 把重复的子程序放到模块. 贰壹玖. 使用三部分式的版本编号. 贰贰零. 程序化地实施你的版本需求. 贰贰壹. 明智地导出且只在可能场合有请求时才导出. 贰贰贰. 考虑以声明方式导出. 贰贰叁. 不要把变量变成模块接口的一部分. 贰贰肆. 自动建立新模块框架. 贰贰伍. 尽可能使用核心模块. 贰贰陆. 可行时就使用CPAN模块. 第十八章:测试和调试 贰贰柒. 先写测试案例. 贰贰捌.

Perl 最佳实践(节选) --- 18

第十八章:测试和调试 贰贰柒. 先写测试案例. 贰贰捌. 以Test::Simple或Test::More把你的测试案例标准化. 贰贰玖. 利用Test::Harness将你的测试集标准化. 贰叁零. 编写失败的测试案例. 贰叁壹. 可能的和不可能的都要经过测试. 贰叁贰. 开始测试前先增加新的测试案例. 贰叁叁. 一定要使用use strict. 贰叁肆. 一定要显式地开启警告功能. 贰叁伍. 绝不要假设编译期间没有警告就意味着正确. 贰叁陆. 显式而选择性地关闭责难(stricture)或警

Perl 最佳实践(节选) --- 02

第二章:代码部署 零零壹. 以K&R风格表示大括号和小括号. 即: my @name = ( 'Damian', 'Matthew' ); for my $name (@names) { formy $word ( anagrams_of(lc $name) ) { print"$wor\n"; } } 零零贰. 控制关键字和后继开口括号间要以空白分割 例如: formy $result (@results) { print_sep(); print$result; } whi

Perl 最佳实践(节选) --- 12

第十二章:正则表达式 正则表达式就是子程序.就是文本匹配子程序. 壹肆伍. 一定要用/x标记. 壹肆陆. 一定要用/m标记. 壹肆柒. 以\A和\z作为字符串边界锚点(anchor). #删除前后空白-- $text=~ s{\A \s* | \s* \z}{}gxm; 壹肆捌. 使用\z表示"字符串末尾",不要用\Z. Perl提供\z标示符号的变形版本:\Z.但是,小写\z是指"匹配字符串末尾",而大写\Z是指"匹配可有可无的换行字符,然后是字符串末尾

Perl 最佳实践(节选) --- 06

第六章:控制结构 零陆贰. 使用代码块if,不要使用后缀if. 例如,下面的就不好理解: $sum+= $measurement if defined $measurement; 其实,它等于: if(defined $measurement) { $sum+= $measurement; } 零陆叁. 后缀if要保留给流程控制语句. 零陆肆. 不要使用unless.for.while.until作为后缀. 零陆伍. 绝对不要使用unless或until. 零陆陆. 避免C风格的for语句. 零

Perl 最佳实践(节选) --- 13

第十三章:错误处理 壹陆玖. 要抛出异常,不要返回特殊值或设定标记. 壹柒零. 让失败的内置函数也抛出异常. 壹柒壹. 让所有上下文中的失败都是致命失败. #把不可接受的失败行为改为抛出异常 -- useFatal qw( :void locate_and_open); #稍后 -- formy $filename () { my$fh = locate_and_open($filename); my$head = load_header_from($fh); print$head; } 壹柒贰