python 的理念是『There is only one way to do it.』,然而它还是有2、3两个不兼容的版本,还是有 pip 和 easy_install 两个各有千秋的包管理器,http 库有官方自带的,但还是第三方的『Requests: HTTP for Humens』更好用。
反观 perl,标榜着『There's more than one way to do it.』,CPAN 上的『LWP』这个大而全的第三方 http 模块,无人不晓,但也有其它的第三方 http 模块,诸如曾经进入过 perl 官方模块的『HTTP::Tiny』、跟『Mojolicious』一起发布的『Mojo::UserAgent』等等;在面向对象方面,perl 本身的支持很弱鸡,现在是靠着 CPAN 上面的第三方模块『Moose』来提供完整的面向对象支持,当然,你没有用到『Moose』中的高级特性的话,也可以考虑使用运行更快的精简版本『Moo』;perl 本身自带了很多语法糖,所以,它也被戏称为『write-only language』,例如:
while ( defined( my $line = <> ) ) {
print $line;
}
可以简写为:
while (<>) {
ptint;
}
或者:
print while (<>);
有时候也会写出让人困扰的代码,所以,在团队合作的时候,一般都尽量避免使用 $_ 这个内置变量,而使用自己命名的变量。
python 里的『Ctypes』模块比较好用,perl 里要实现类似的功能只能动用 XS 了(