为什么我应该使用Perl而不是Ruby/Python/etc?

为什么我应该使用Perl而不是Ruby/Python/etc?,perl,Perl,我喜欢Ruby,几年来一直使用它来处理日常脚本任务。然而,最近有很多人告诉我Perl就是它的所在。我并不反对Perl,但它似乎有点落后于时代 然而,这可能只是我的看法,所以我想问大家,Perl为什么如此伟大?我真的在这里寻找信息;我想理解为什么这种语言有如此热情的追随者。如果要我说出Perl的一大优点,那就是一个词:CPAN 在使用Ruby之后,我不会说Perl一定更好或更差,但肯定更成熟。毕竟,它要老得多。然而,它并没有衰老。它有很多现代的东西,例如Moose,5.10和5.12的更新修复了古

我喜欢Ruby,几年来一直使用它来处理日常脚本任务。然而,最近有很多人告诉我Perl就是它的所在。我并不反对Perl,但它似乎有点落后于时代


然而,这可能只是我的看法,所以我想问大家,Perl为什么如此伟大?我真的在这里寻找信息;我想理解为什么这种语言有如此热情的追随者。

如果要我说出Perl的一大优点,那就是一个词:CPAN

在使用Ruby之后,我不会说Perl一定更好或更差,但肯定更成熟。毕竟,它要老得多。然而,它并没有衰老。它有很多现代的东西,例如Moose,5.10和5.12的更新修复了古代5.0.x的很多问题


(如果你想知道:Perl 5和Perl 6是不同的语言。相似的名称是一个不幸的错误。尽管Perl 5确实借鉴了Perl 6的思想,反之亦然。)

现在,使用Perl的主要原因是,你可以非常有信心,几乎任何UNIX系统都可以使用它,甚至在更稀疏的商业UNIX发行版上

此外,它还具有一些特性,可以非常方便地与UNIX shell和文件系统配合使用。当您需要更多的功能时,Perl一行程序在shell脚本中非常方便

如果您不在UNIX机器上,那么与更现代的脚本语言相比,可能没有什么优势。

CPAN


Perl的语法有时看起来很痛苦,但它在任何地方的Unix机器上都可以使用,并且可以通过命令行访问CPAN中的大量软件包(也可以通过浏览器访问),Perl是事实上的标准,因为它具有广泛的适用性和可用性。

首先,我也喜欢Python和Ruby。事实上,我认为你能用三种语言中的任何一种做任何事情,你能用另一种语言做任何事情都一样容易

然而,CPAN是一个很大的优势。没有多少次我发现自己在寻找一个特定的通用功能,而没有为它找到一个模块。 然而,对我来说最重要的是,我完全可以做任何我想做的事情,如果我喜欢的话,可以用10种不同的方式快速完成,但这可能只是因为Perl是我的“母语”

不管怎样,我想这取决于你想做什么。如果您想创建一个具有所有管道(身份验证、授权、会话跟踪、数据库ORM等)的可伸缩网站或web应用程序,可以用Perl来完成,但这并不值得。然后使用Python(Django)或Ruby(Rails3.0Rocks)

祝你好运,当心火焰之战的纵火,这类东西会严重伤害你;)


Rob

我认识一大群黑客,他们离开Perl去了Ruby。Python显然也是一种很好的语言。我既不是在说也不是在暗示反对任何一方

Perl5的优点
  • 大约从2005年左右开始,Perl在CPAN和core版本中都经历了相当戏剧性的复兴。Perl6通过将面向角色的OO等概念发回,帮助推动了这一进程。草莓Perl使Windows上的Perl黑客行为更像*nix
  • 这是一个巨大的、仍在增长的领域,大多数使用更广泛的作者/团队都对错误修复做出了响应。大多数流行的Perl模块都经过了广泛而良好的测试。CPAN测试人员最近发送了第1000万份测试报告
  • 许多大型工具包都有良好的社区,可以快速获得专家帮助
  • 工具链变得非常灵活。
    • 和的组合使用户(即使没有根用户)可以在同一个框中访问任意数量的perl版本和库
  • Java、Ruby和Python所做的许多正确的事情都回到了Perl,并且非常方便。例如——
    • 但从某些基准来看,速度甚至更快
    • 但是更灵活。对于M和V来说,这是一个完全不可知论的C
    • 是Python+Ruby的
  • 它的速度快,个性化,可读性和健壮性,正如你所希望的那样。
    • 当您急于修复某些内容时,一个简短的一行程序可以编辑树中的每个HTML文件
    • 在6个或7个合适的HTML/XML包的基础上构建一个清晰而健壮的程序,其中包含错误报告、日志记录和反馈,可以为客户机实现同样的功能
  • 。尽管有明显的例外,Perl社区通常是友好的、有帮助的和积极的
  • 有很多好的Perl工作等待填补。高级语言之间的来回转换使得大量的Perl处于空白状态,而没有一批以Perl为中心的开发人员。(我每年接到5-7个招聘人员的冷电话。)
  • 很有趣。引用语:“我不能谈论它的科学本质,但我可以说我今天只编程,因为Perl存在。许多其他Perl黑客都有这种愚蠢的语言眩晕

记住这不是一个零和游戏。你能掌握的语言越多越好。

真的,你为什么要这么做?只需使用您更了解并符合客户要求的内容。许多ppl告诉我“忘记C/C++,使用.NET”,但我不能,因为我为Linux编程,他们不懂:)好吧,工具箱里有几个工具很好。如果你只有一种工具,就很难为工作选择合适的工具。理想情况下,你应该了解这两种工具的基本知识,然后根据自己的经验,努力找出哪一种工具使你的发展更有成效。只要确保向StacOverflow询问“最佳实践”,这样你就可以进行比较了(例如,如果你坚持使用1995年的框架,那么用Perl构建web应用很糟糕,但是Perl构建web应用的框架要比1995年的框架多得多,除非你问清楚,否则这可能不明显)。@Nate C-K:也不确定