bah*_*mat 30

答案是/不是性感,取决于你的观点。

Perl 非常有用。许多系统实用程序是用 perl 编写的或依赖于 perl。如果卸载 Perl,大多数系统将无法正常运行。

几年前,FreeBSD付出了很多努力来移除 Perl 作为基础系统的依赖。这不是一件容易的事。

  • @JoshVoigts 内核本身不使用 perl no。然而,构建内核的过程确实使用了大量的 perl。至于 Arch,就得有人来回答了。 (10认同)
  • FreeBSD 基本系统基本上是一个包含内核、实用程序和所有内容的巨大源代码存储库。所以他们在那个 repo 中维护自己的 Perl 分支,这是一项巨大的努力,很难与上游 Perl 保持同步。因此,他们从基本系统中删除 Perl 并将其安装为端口是有意义的,这更容易保持最新状态(因为他们只是获取上游 Perl 版本并编译它们)。 (8认同)
  • @ire_and_curses:[Perl5 将离开 5.0 及之后的基础系统!](http://lists.freebsd.org/pipermail/freebsd-announce/2002-May/000823.html) 同样从 2011 年开始:[FreeBSD: Package系统合并](http://wiki.freebsd.org/PackageSystemsMerging)(在 OpenBSD 下)。 (4认同)
  • 出于好奇,FreeBSD 用什么代替了 Perl? (3认同)

ire*_*ses 28

在 Larry Wall于 1987 年 12 月 18 日发布comp.sources.misc新闻组的原始 Perl v1.0 中,他说:

如果您有一个问题,通常会使用 sed 或 awk 或 sh,但它超出了它们的能力或必须运行得更快一点,并且您不想用 C 编写愚蠢的东西,那么 perl 可能适合您。

后来的论述中,他详细阐述了一点:

但是 Unix shell 编程的挫折直接导致了 Perl 的创建,我真的没有时间说。但本质上,我发现 shell 脚本本质上受到以下事实的限制:它的大多数动词不受其控制,因此在很大程度上彼此不一致。名词是贫乏的,仅限于字符串和文件,具有谁知道是什么类型......

更具破坏性的是认为它是一个一维宇宙的心态:你要么用 C 编程,要么用 shell 编程,因为它们显然处于 One True Continuum 的两端。当我意识到脚本并不总是必须被视为编程的对立面时,Perl 就出现了,但一种语言可能对两者都很好。这开辟了一个巨大的生态位。你们中的许多人已经看过我的旧翻盖图,其中包含操纵性和鞭打性两个维度。

今天,Perl 是 shell 脚本和文本解析需求的标准替代品/替代品,并且比传统工具更强大。由于其极端(有些人会说不雅)的灵活性,Perl 被描述为“脚本语言的瑞士军队电锯”。当使用 Perl 解决时,任务通常可以显着缩短、更容易或更可扩展。许多系统工具、脚本和更大的程序通常都是用 Perl 编写的。所以在现代 Linux 环境中,Perl 现在是另一个标准的 Unix 工具,真正不可或缺。


Ema*_*erg 5

  1. Perl 是为 Unix 开发的,因为工具不够强大。对于体育运动,您可以在其中查找awk和(Perl)。sed
  2. Perl(除其他外)受到 Unix shell(以及 C,它对 Unix 非常重要——或者反过来,也许)的启发。
  3. 此外,Perl 可以在 GNU 许可证下分发。有些人会认为从技术角度来看这无关紧要,但它显示了混合性。
  4. 我最后能想到的是LAMP,它是一个网络“软件包”。(在维基百科上查一下:P 是,或者至少是 Perl;L 是 Linux。)(但最后一点有点“先有鸡还是先有蛋”。)

  • 如今,LAMP 中的 P 通常是 PHP 或 Python。我认为 Perl 更是该缩写词的遗留用途。 (9认同)