【Perl 文档中文化计划】Perl 夹带翻译完成。

【Perl 文档中文化计划】Perl 夹带翻译完成。

非常有趣的一个文档,由鄙人翻译完成。

最新版本可以从这里获取(POD 格式):
http://svn.perlchina.org/trunk/POD2-CN/lib/POD2/CN/perlcheat.pod

[Copy to clipboard] [ - ]
CODE:
NAME
    perlcheat - Perl 5 夹带

DESCRIPTION
    这个“夹带”实际上是一个真正的“手册”--巴掌大的一个小册子,用来记录
    一些开始学习 Perl 编程时遇到的知识点。它并不是面面俱到的,但是覆盖了约
    194 个 Perl 特性。

  夹带
    建议你把它打印出来 ^_^ 帖在墙上,如果要考试的话,还可以藏在袖筒里 ^_^

      上下文  变量名前缀           数组          哈希表
      void      $scalar    整个:   @array        %hash
      scalar    @array     切片:   @array[0, 2]  @hash{'a', 'b'}
      list      %hash      元素:   $array[0]     $hash{'a'}
                &sub
                *glob    标量值类型
                         数值, 字符串, 引用, glob, undef
      引用
      \     引用            $$foo[1]       等效于 $foo->[1]
      $@%&* 解引用          $$foo{bar}     等效于 $foo->{bar}
      []    匿名数组        ${$$foo[1]}[2] 等效于 $foo->[1]->[2]
      {}    匿名哈希表      ${$$foo[1]}[2] 等效于 $foo->[1][2]
      \()   一列引用
                              数值 VS 字符串      有用的链接
      操作符优先              =          =        perl.plover.com
      ->                      +          .        search.cpan.org
      ++ --                   == !=      eq ne         cpan.org
      **                      < > <= >=  lt gt le ge   pm.org
      ! ~ \ u+ u-             <=>        cmp           tpj.com
      =~ !~                                            perldoc.com
      * / % x                 语法
      + - .                   for    (LIST) { }, for (a;b;c) { }
      << >>                   while  ( ) { }, until ( ) { }
      命名一元操作符          if     ( ) { } elsif ( ) { } else { }
      < > <= >= lt gt le ge   unless ( ) { } elsif ( ) { } else { }
      == != <=> eq ne cmp     foreach 任何时候都可以缩写为 for
      &
      | ^              正则表达式元字符           正则表达式修饰符
      &&               ^     字符串开始           /i 大小写不敏感
      ||               $     字符串结束(\n之前)   /m ^$ 表示行首行末
      .. ...           +     一个或多个           /s . 包括 \n
      ?:               *     零个或多个           /x 忽略所有空白
      = += -= *= 等等  ?     零个或一个           /g 全局(重复)
      , =>             {3,7} 重复 3 到 7 次
      列表操作符       ()    捕获             正则表达式字符类
      not              (?:)  不捕获           .  == [^\n]
      and              []    字符类或集合     \s == [\x20\f\t\r\n]
      or xor           |     二选一           \w == [A-Za-z0-9_]
                       \b    单词边界         \d == [0-9]
                       \z    字符串结尾       \S, \W and \D negate
      一定要这样做!
      use strict;        不要这样做!     有用的链接
      use warnings;      "$foo"           perl.com
      my $var;           $$variable_name  perlmonks.org
      open() or die $!;  `$userinput`     use.perl.org
      use Modules;       /$userinput/     perl.apache.org
                                          parrotcode.org
      函数返回值
      stat      localtime    caller         特殊变量
       0 dev    0 秒(0-59)   0 包名         $_    默认变量
       1 ino    1 分(0-59)   1 文件名       $0    程序名称
       2 mode   2 时(0-23)   2 行号         $/    输入分隔符
       3 nlink  3 日(1-30)   3 调用子程序   $\    输出分隔符
       4 uid    4 月-1(0-11) 4 有没有参数? $|    句柄不缓冲
       5 gid    5 年-1900    5 想要数组吗? $!    系统错误信息
       6 rdev   6 星期几     6 eval 文本    $@    eval 错误信息
       7 size   7 当年第几天 7 is_require   $$    当前进程号
       8 atime  8 是否夏令时 8 hints        $.    当前句柄当前行号
       9 mtime               9 bitmask      @ARGV 命令行参数
      10 ctime  just use                    @INC  模块搜索路径
      11 blksz  POSIX::      3..9 只有带参  @_    子程序参数
      12 blcks  strftime!    数调用时有效   %ENV  环境变量

ACKNOWLEDGEMENTS
    本文的最初出现在 Perl Monks 上,后来又有一些人提出过建议。感谢 Perl
    Monks!

    特别要感谢的是 Damian Conway,他不仅提了很多重要的修改建议,而且还耐心地
    数了数一共列出了多少个 Perl 特性,并且还制作了一个 Perl 6 版本。

作者
    本文由 Juerd Waalboer <juerd@cpan.org>, 在很多 Perl Monks
    人的帮助下完成。

参见
     http://perlmonks.org/?node_id=216602      最初的帖子
     http://perlmonks.org/?node_id=238031      Damian Conway 的 Perl6 版本
     http://juerd.nl/site.plp/perlcheat        Perl 夹带主页

翻译者及翻译声明
    本文由 flw ("flw@cpan.org") 翻译,翻译成果首次出现在 *中国 Perl 协会*
    http://www.perlchina.org) 的协作开发平台上。

    PerlChina.org 本着“在国内推广 Perl” 的目的,组织人员翻译本文。读者可
    以在遵守原作者许可协议、尊重原作者及译作者劳动成果的前提下,任意发布或
    修改本文。

    如果你对本文有任何意见,欢迎来信指教。本人非常欢迎与各位交流。

谢谢!!
是否可以简单解释一下 不要这样做!下面几个列选  的原因
thank you
"$foo"
当双引号中只有 $foo 时,双引号应该去掉。

$$variable_name
符号引用应该避免,如有需要应该用 $hash 代替。

`$userinput`
/$userinput/
用户输入的字符串应该做检查或者过滤,不宜直接拿来当作命令或者正则表达式来解释。
对于 `$userinput` 可以先过滤分组一下然后用 exec 或 system 的列表形式来代替。
/$userinput/ 应该用 index 来代替。

不错,谢谢老大!
这个帖子发的太早了,链接也断了,刚学perl,希望LZ能够补起这批文档,如果能够直接发给我更是感激不尽...
yinhui198456@tom.com