1. 熟悉文档,从中能够发现任何事物
  2. 开始运用perl文档,输入perldoc perl
  3. 先了解你自己,那样才能更好的了解程序
  4. 用向前进的动力,而不是用想逃避的问题去激励自己
  5. 如果不能表达为自然语言,就不能用perl进行描述
  6. 每一个项目都采用同样的风格
  7. 对于比较难注释的部分,用POD注释
  8. 尽量使声明的变量更易理解
  9. 在所有的程序中使用 -w 和 use strict
  10. 使用 use diagnostics 解释出错信息
  11. 尽可能在最里层创建变量
  12. 如果有很多同一个 $_ 实例的显式引用,就可以用命名的变量代替
  13. 当使用while循环设置了$_时,如果$_可能被用于其它地方,那就先保存它
  14. 当函数应该带参数而没有带的时候,在函数的后面加上空括号
  15. 当优先级不明确的时候使用括号;括号不会破坏运算符的优先级
  16. 在检测较低级键值存在之前,如果较高键值可能不存在,就先检测较高键值是否存在
  17. 在进一步开发程序之前,消除所有可能产生警告信息的因素
  18. 在早期阶段就声明子程序,避免子程序与Perl的内置函数冲突,或者使用&调用自定义的函数
  19. 不要把数组传递给那些通常需要标量的内置函数
  20. 不要指望循环变量在循环结束后保留它的值;如果确实需要它们,直接保存它们
  21. 采用Data::Dumper模块打印任何变量或层次结构数据的格式化数据
  22. 选项尽可能设置到最方便的输入界面
  23. 通过单行检测可以构造小代码的原型
  24. 通过检查散列的引用,而不是检查散列本身,调试器可以以更友好的格式输出
  25. 用户程序中的语法错误可能不仅仅发生在Perl提示的行中,它可以在这一行之前的任一行中
  26. 只处理Perl返回的第一个出错信息,不管其他的,然后进行编译
  27. 不要从一个程序的不同地方进入相同的文本并指望使它们保持同步
  28. 尽量使错误在编译时出现而不是在运行时出现
  29. 了解你的操作系统
  30. 通过捕获异常并合理地对其进行处理来增强程序的防错能力
  31. readir()返回目录中的文件名列表,但是目录本身并没有将这些文件名合法化
  32. Deparse模块通常能够解释Perl是如何分析您的代码的
  33. 千万不要用条件去限制my语句
  34. 首先对代码进行可读性与可维护性的优化;对其性能的优化在需要进行优化的工作版本成形后进行
  35. 利用Benchmark模块比较不同代码策略下的相对速度
  36. 利用Devel::DProf模块找到程序的“瓶颈”所在
  37. 在进行循环的时候,应该尽快的结束循环
  38. 带有通用参数的Memoize函数调用
  39. 尽可能利用Perl的内部函数而不是调用外部程序
  40. 不要生成不必要的列表
  41. 避免不必要的拷贝操作
  42. 避免临时文件
  43. 利用Exporter把一系列普通常量放入模块中,并在需要的地方调用模块
  44. 如果有可能,在您正在开发的Web服务器上得到一个交互式的登录。如果办不到,考虑采用其他的服务方式
  45. 创建CGI程序时,从一开始就进行感染检查。在已有的程序中加入 -T 进行感染检查是一种不明智的作法,麻烦并且令人失望
  46. 将CGI程序从命令行开始运行,以检查它是否能够按照正确的顺序产生正确的输出