为什么大多数 Linux 发行版都默认安装 Perl?

为什么大多数 Linux 发行版都默认安装 Perl?

为什么大多数 Linux 发行版都默认安装 Perl?

答案1

在拉里·沃尔的原始 Perl v1.0 发布comp.sources.misc1987 年 12 月 18 日的新闻组中,他说:

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

在一个很久以后的阐述,他详细阐述了一些:

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

更具破坏性的是认为它是一个一维宇宙的心态:你要么用 C 编程,要么用 shell 编程,因为它们显然位于一个真正的连续体的两端。当我意识到脚本并不总是被视为与编程相反,而是单一语言对两者都非常有利时,Perl 就出现了。这开辟了一个巨大的生态位。你们中的许多人都看过我的旧翻盖图,其中包含操控性和鞭策性两个维度。

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

答案2

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

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

几年前,FreeBSD 经历了很多的努力删除 Perl 作为依赖项对于基础系统。这不是一件容易的事。

答案3

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

答案4

我认为这个问题的答案部分是历史性的,部分是实践性的。

就历史而言,Perl 是一种优雅的语言。它比 Python 更优雅(更不用说 PHP),尽管我不知道什么是“更好”(如果可以以某种方式进行正式分析,我对此表示怀疑)。正在使用(或使用过)Perl 的优秀人士通常是决定 Linux 发行版中应包含哪些内容的人。

至于实用性如何,Perl仍然是很多东西的粘合剂:操作系统和网络(同样,LAMP,不要忘记 Python 或 PHP)。那么为什么不包含一些对多种用途有用的东西呢?更何况,为什么消除那里的任何东西(并且不会造成任何伤害),有用吗?

但是,碰巧的是,最新一期的 Linux 杂志(#151,2013 年 6 月)对此有一个注释。显然,为了编译 Linux 内核,使用了几个简短的 Perl 脚本。 (再次强调 Perl 在操作系统中的“粘合剂”作用。)现在,一位内核开发人员已经提交了这些脚本的重写补丁,这次不是用 Perl,而是用“Unix shell 脚本”(是这样的)sh?)。这样,编译内核的人就不必安装 Perl。但是,该补丁(已提交多次)尚未被采纳。原因之一是,一旦被冷落,Perl 就不太可能被接纳。人们喜欢 Perl,他们不想放弃它。

现在,这只是触及这个问题的边缘,因为可能只有极少数的 Linux 用户可能会编译内核。但这是另一个难题(我怀疑还有很多)。

相关内容