【在主画面加入捷径】
       
【选择语系】
繁中 简中

Perl 6 程序设计教学:缘起

【赞助商连结】

    Perl 家族有两个语言,一个是广为人知的 Perl 5,一个则是相对较不知名的 Perl 6。Perl 6 的出现,是为了修改 Perl 5 的一些历史议题。由于 Perl 5 已经在许多系统中广泛使用,直接修改 Perl 5 而造成语法不兼容的话,对 Perl 社群的伤害相当大。因此,Perl 6 从头开始设计,和 Perl 5 在语法上有相当的差异,可视为一个全新的语言。同时间,Perl 5 仍然持续维护着,一些 Perl 6 的概念又回头影响 Perl 5,像 Moose 物件系统等。

    在 2015 年十二月后,Perl 6 发布第一个正式版本 (v6.c),语法特性大抵上可说是稳定下来了。不过,观察 Perl 6 的套件可以发现,Perl 6 目前的社群套件仍然相当薄弱,离实用还有一大段路要走。目前暂时的解决方式是使用 Perl 5 兼容模式,直接引用 Perl 5 套件;另外,也可以从 Perl 6 引用 C、C++、Python 的套件。如果 Perl 6 还不能正式上线,为什么要撰写 Perl 6 的教程?

    一方面是笔者的私心,Perl 5 是笔者第一个深入学习的语言,后来因不同需求陆续学了许多其他的程序语言,不过,仍然喜欢 Perl 或 Ruby 这种风格的语言。现在有许多程序语言出现,Perl 的社群相对就萎缩了。这几年,除了几本常青的 Perl 书籍,包括 Programming Perl (Perl 程序设计)Learning Perl (Perl 学习手册)Intermediate Perl (Perl 进阶手册)Modern Perl 以外,很少看到 Perl 的新书。不过,Perl 在文字处理、日常任务、系统管理上,仍是相当实用的工具。

    随着 Perl 6 的语法稳定下来,Perl 社群开始尝试推广 Perl 6。例如,最近出现了一些 Perl 6 的新书,像是 (顺序无特别意义):

    • Perl 6 at a Glance, DeepText, 2017 (独立出版)
    • Think Perl 6, O’Reilly, 2017
    • Learning Perl 6, O’Reilly (尚未出版)
    • Perl 6 Fundamentals, Apress, 2017
    • Perl 6 Deep Dive, Packt, 2017

    如果观察一下这些书籍的内容,可发现这些书籍多集中在讨论 Perl 6 语法本身,对于实际的应用层面则较少提及。某种程度上,这也反映了 Perl 6 社群的现况。

    虽然 Perl 6 官网也有一些 Perl 6 的数据,这些数据的风格较接近参考指引 (reference),充满许多细节,相对不易阅读。此外,比起先前所列的英文数据,中文数据就更少了。有鉴于此,笔者开始撰写 Perl 6 的教学文件,希望能达到抛砖引玉的效果。

    由于 Perl 6 的语法特性相当丰富,如果要一股脑地全部记起来,反而容易迷失在细节中。Perl 6 也有 Perl 家族的特性,有时候在语法特性太过头了,提供过多冗余的语法;其实,即使仅学习其中一部分的 Perl 6 语法,就可以开始撰写程序了。在这份教学文件中,我们不会罗列所有 Perl 6 的特性,而会撷取较适合初学者的部分,以渐近性的方式介绍 Perl 6;待熟悉 Perl 6 以后,再慢慢学习其他部分即可。