Repository navigation
learn per
Liu Bo edited this page Feb 11, 2014
·
1 revision
-
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
-
文档:
- 随Perl安装的核心文档
- CPAN(http://www.cpan.org)
- http://perldoc.perl.org 提供了Perl核心文档的HTML版本和PDF版本.
- http://faq.perl.org
- http://learn.perl.org
- http://perlsphere.net
- 书籍:
- <Perl语言编程>, 大骆驼书
- <Perl语言入门>, 小骆驼书
- <Perl 5 Pocket Reference>, 适合放进口袋
- 社区:
- The Perl Monastery (http://www.perlmonks.org)
- 邮件列表 beginners@perl.org
- Bug提交:
- perlbug
- 邮件, 需要提供测试程序来让别人重现该问题. 开发团队会提供补丁.
- 语句末尾有没有分号都可以.
- 字符串使用"", 会进行转义; 使用'', 不会进行转义.
- Perl程序可以以任何文件名保持. Perl程序并不需要用什么特殊的文件名或扩展名命名, 甚至能不用扩展名就最好不要用.(当前你使用perl实现, 将来可以轻松的换成其他语言实现来替换该可执行文件)
- 要求换行符与操作系统的换行符保持一致.
- 有些Unix以外的系统上必须使用.plx(PerL eXecutable)之类的扩展名.
- 打印语句 print "hello\n"; 等价 use 5.010; # 测试不加会提示编译错误 say "hello";
- use 5.010语句, 需要注意Perl总是将次版本号看做是三位数表示的, 所以前导零不可以省略. (5.10 Perl会当做 5.100) 一般来说, 只需要声明新特性初次引入的版本号即可.
- 和其他的形式自由(free-form)的语言一样, Perl通常可以随意加上空白符(空格, 制表符, 换行符), 不过多数Perl程序都会选择使用比较统一的格式标准.
- 注释: 从井号(#)开始到行尾结束(Perl没有注释块的概念, perlfaq中有很多模拟方法实现).
- 代码风格: perlstyle文档中介绍了一些通用的缩排建议.
- 程序的第一行: 在Unix系统里, 如果文本文件开头的最前两个字符是#!(读作sh-bang, sheh-bang, 和"the whole shebang"读音一样), 那么后面跟着的就是用来执行这个文件的程序路径.
- shebang行时Perl程序中最缺乏可移植性的一行了, 通常只有 /usr/bin/perl 和 /usr/local/bin/perl 两种. 也可以在shebang行执行外部命令 自动帮你定位perl解释器的路径: #!/usr/bin/envperl, 这个仅仅是定位所能找到的第一个perl解释器.
- 在非Unix系统中, 传统上第一行会写成 #! perl, 提醒维护人员这是个Perl程序.
- 系统不支持shebang行, 错误信息会出人意料, 可以perldiag中查阅.
- Perl的主(main)程序完全由普通的Perl语句(statement)组成(子程序里的除外, 这个我们稍后再谈), Perl没有以"main"命名的例程(routine).
- perl解释器能一次完成编译和运行这2个动作.