【问题标题】:Learning Perl from Python perspective从 Python 角度学习 Perl
【发布时间】:2011-07-24 13:02:20
【问题描述】:

从系统自动化和工具构建的角度来看,我对 python 相当熟悉;我是一名系统管理员。我最近在一家希望标准化 perl 的公司开始了一份新工作,对此我一无所知。所以我需要快速掌握 perl 的速度,并希望有人能指出一些有用的参考资料,这些参考资料旨在帮助 python 开发人员/脚本编写者尝试学习 perl 的基础知识。我发现this 关于从 perl 到 python;我需要相反的。我买了the llama book,但还不能开始阅读。有什么意见/建议吗?

【问题讨论】:

  • 你不会通过购买一本书而不是阅读它来学习 Perl。阅读。如果您已经了解 Python,将不会花费您任何时间。不过,一旦你读完它,你可能会想换工作!
  • 仅供参考:Perl 是语言的名称; perl 是运行 Perl 脚本的程序的名称。如果你没有正确使用它们,我不会是唯一一个告诉你区别的人。 :)
  • 我不羡慕工作场所的任何人在 2011 年将 迁移到 Perl。
  • @Tom - 诚然,Perl 对繁琐的代码非常宽容,但它不会强制你这样写。它运行结构良好且清晰的代码一样好或更好。一点点自律会有很长的路要走。
  • 哇,今天人们真的很想提供帮助......

标签: python perl scripting


【解决方案1】:

通过 Llama(这很容易),完成后查看 Effective Perl Programming 和/或 Modern Perl。它们将帮助您避免 1994 年编写的所有蹩脚教程所鼓励的错误,这些教程似乎仍在网络上回荡。

花时间查看Moose,尤其是MooseX::Getopt

顺便说一句,比起 Python,我更喜欢 Perl,但我觉得没有必要每次提到 Python 时都停止运行 Python。 WTF Pythonistas?请考虑一下,没有一种语言是完美的,也没有一种语言拥有“编程的终极真理”。正如布鲁克斯所指出的,没有灵丹妙药。 Python 有一些很棒的东西,Perl 有一些很棒的东西。 Python 有一些垃圾,Perl 有一些垃圾。

【讨论】:

  • +1 表示最后一段。每个人都有自己的喜好,没有必要为此而烦恼。
  • +1 表示所有答案。 Modern Perl 是一次非常精彩的 Perl 之旅。我可能不推荐 Moose 用于系统管理……尽管还有 Moo,这可能会使命令行版本变得 zippy 并且在代码方面几乎同样强大;以后也容易切换。顺便说一句:Perl and Python hackers compared.
  • @Ashely,Moose 在启动时可能会有点慢,但在过去的几年里,它变得非常非常好。我提倡 Moose 和 MooseX::Getopt(以及相关的配置文件模块)编写任何脚本而不是一次性的,因为它们使这些任务的大部分乏味工作消失了。声明您的脚本/应用程序对象,解析您的配置文件并使用 CLI 参数覆盖它,所有这些都在几行声明性代码中。使用BEGIN { package Foo; ... } 块使相关对象存在于单个文件中,您可以非常快速地构建强大、灵活的脚本。
【解决方案2】:

我知道你已经有一本书了,但根据你的描述我会推荐Automating System Administration with Perl

【讨论】:

    【解决方案3】:

    一些典型的python习语到perl的翻译:

    • 列表理解 [x * x for x in range(10)] 变为 map {$_ * $_} 0..9
    • 过滤器filter(x > 5, range(10)) 变为grep {$_ > 5} 0..9
    • 一个函数def f(x, y): return x + y变成sub f { my ($x, $y) = @_; $x + $y }

    作为内置函数的快速参考,我发现perldoc -f <function_name> 非常有用。

    最后,请注意,虽然单 ('') 和双引号 ("") 字符串在 python 中是相同的,但它们在 perl 中不同!例如,"$a\n" 将被插值,即 '$a' 将被变量 $a 的值替换。

    【讨论】:

    • map {$_ * $_} 1..9 你不是说map {$_ * $_} 0..9 吗?
    【解决方案4】:

    我从 Python 转到 Perl 也是为了工作。我也使用了 Learning Perl,它帮助我在一个周末的时间里很好地学习了 Perl。

    学习 Perl 的最佳方法是阅读该教科书并使用它。如果您正在寻找练习,您可以用 Perl 重写您现有的 Python 项目以加快学习该语言的速度。

    【讨论】:

      【解决方案5】:

      最好的办法是阅读 Llama 书并进行练习。并且来自 Python,它的语法有些相似,请确保您编写的是 Perl 而不是 Python。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-03
        • 2019-01-17
        • 2019-01-10
        • 1970-01-01
        • 2020-12-19
        • 2011-07-14
        • 2011-06-13
        相关资源
        最近更新 更多