Akagi201
6/21/2014 - 7:48 AM

perl.md

perl 版本管理

介绍

http://perldoc.perl.org/perlintro.html

Win下解释器

Strawberry Perl

视频教程

资源

入门: http://learn.perl.org/ perl modules(libraries): http://www.cpan.org/ cpan Modules::Name Perl语言入门(Learning Perl) 对应的源码: http://www.learning-perl.com

  • Perl: Larry Wall是先想出这个词, 然后考虑如何展开解释的. Perl是个溯写字(backronym), 而不是缩写词(acronym). "实用摘录与报表语言"(Practical Extraction and Report Language), "病态折中式垃圾列表器"(Pathologically Eclectica Rubbish Lister).

  • "Perl"指的是程序语言; "perl"指的是实际编译并运行程序的解释器(命令行时使用此小写形式).

  • CPAN(Comprehensive Perl Archive Network): Perl综合典藏网, 里面有Perl本身的源码, 各种非Unix的安装程序, 范例程序, 说明文档, 扩展模块以及Perl相关的历史邮件存档.CPAN有很多镜像. http://search.cpan.org

  • 技术支持: Perl推广组(Perl Mongers) http://www.pm.org

  • 文档:

  1. 随Perl安装的核心文档
  2. CPAN(http://www.cpan.org)
  3. http://perldoc.perl.org 提供了Perl核心文档的HTML版本和PDF版本.
  4. http://faq.perl.org
  5. http://learn.perl.org
  6. http://perlsphere.net
  7. http://perl.linuxtoy.org/
  • 书籍:
  1. <Perl语言编程>, 大骆驼书
  2. <Perl语言入门>, 小骆驼书
  3. <Perl 5 Pocket Reference>, 适合放进口袋
  • 社区:
  1. The Perl Monastery (http://www.perlmonks.org)
  2. 邮件列表 beginners@perl.org
  • Bug提交:
  1. perlbug
  2. 邮件, 需要提供测试程序来让别人重现该问题. 开发团队会提供补丁.

Grammers

  1. 语句末尾有没有分号都可以.
  2. 字符串使用"", 会进行转义; 使用'', 不会进行转义.
  3. Perl程序可以以任何文件名保持. Perl程序并不需要用什么特殊的文件名或扩展名命名, 甚至能不用扩展名就最好不要用.(当前你使用perl实现, 将来可以轻松的换成其他语言实现来替换该可执行文件)
  4. 要求换行符与操作系统的换行符保持一致.
  5. 有些Unix以外的系统上必须使用.plx(PerL eXecutable)之类的扩展名.
  6. 打印语句 print "hello\n"; 等价 use 5.010; # 测试不加会提示编译错误 say "hello";
  7. use 5.010语句, 需要注意Perl总是将次版本号看做是三位数表示的, 所以前导零不可以省略. (5.10 Perl会当做 5.100) 一般来说, 只需要声明新特性初次引入的版本号即可.
  8. 和其他的形式自由(free-form)的语言一样, Perl通常可以随意加上空白符(空格, 制表符, 换行符), 不过多数Perl程序都会选择使用比较统一的格式标准.
  9. 注释: 从井号(#)开始到行尾结束(Perl没有注释块的概念, perlfaq中有很多模拟方法实现).
  10. 代码风格: perlstyle文档中介绍了一些通用的缩排建议.
  11. 程序的第一行: 在Unix系统里, 如果文本文件开头的最前两个字符是#!(读作sh-bang, sheh-bang, 和"the whole shebang"读音一样), 那么后面跟着的就是用来执行这个文件的程序路径.
  12. shebang行时Perl程序中最缺乏可移植性的一行了, 通常只有 /usr/bin/perl 和 /usr/local/bin/perl 两种. 也可以在shebang行执行外部命令 自动帮你定位perl解释器的路径: #!/usr/bin/envperl, 这个仅仅是定位所能找到的第一个perl解释器.
  13. 在非Unix系统中, 传统上第一行会写成 #! perl, 提醒维护人员这是个Perl程序.
  14. 系统不支持shebang行, 错误信息会出人意料, 可以perldiag中查阅.
  15. Perl的主(main)程序完全由普通的Perl语句(statement)组成(子程序里的除外, 这个我们稍后再谈), Perl没有以"main"命名的例程(routine).
  16. perl解释器能一次完成编译和运行这2个动作.

Book

Modules

cpan on mac

sublime text

{
  "cmd": ["/usr/bin/perl", "$file"],
  "file_regex": ".* at (.*) line ([0-9]*)",
  "selector": "source.pl"
}