从Python角度学习Perl
我对Python还算熟悉,主要是用来做系统自动化和工具开发的,因为我本身是个系统管理员。最近我换了新工作,这家公司想要统一使用Perl,而我对Perl一点都不了解。所以我需要尽快掌握Perl,希望有人能推荐一些适合Python开发者学习Perl基础的参考资料。我找到了一些关于从Perl转到Python的内容,但我需要的是反过来的。我买了《Llama Book》,但还没开始读。有没有什么建议或者意见?
5 个回答
我知道你已经有一本书了,但根据你的描述,我会推荐你看看这本书:用Perl自动化系统管理
以下是一些典型的Python写法在Perl中的对应写法:
- 列表推导式
[x * x for x in range(10)]
在Perl中变成map {$_ * $_} 0..9
- 过滤器
filter(x > 5, range(10))
在Perl中变成grep {$_ > 5} 0..9
- 一个函数
def f(x, y): return x + y
在Perl中变成sub f { my ($x, $y) = @_; $x + $y }
如果你需要快速查找内置函数,可以使用 perldoc -f <function_name>
,这个很有用。
最后要注意的是,在Python中,单引号(''
)和双引号(""
)的字符串是一样的,但在Perl中可不是哦!比如,"$a\n"
会被解析,也就是说,'$a' 会被变量$a的值替换掉。
先把《Crank through the Llama》这本书读完(其实很简单),然后可以看看《Effective Perl Programming》和/或《Modern Perl》。这两本书能帮你避免那些1994年写的糟糕教程里常见的错误,这些错误在网上到处都是。
花点时间去了解一下Moose,特别是MooseX::Getopt。
顺便说一下,我更喜欢Perl而不是Python,但我并不觉得每次提到Python时都要贬低它。你们这些Python爱好者,能不能考虑一下,没有任何一种语言是完美的,也没有一种语言能代表编程的“终极真理”。正如Brooks所说,没有什么灵丹妙药。Python有一些很棒的地方,Perl也有一些很棒的地方;同样,Python也有一些糟糕的地方,Perl也有一些糟糕的地方。