ETA:当我问“你为什么不使用 CPAN 模块?”时,我指的是那些拒绝使用任何CPAN 模块(包括像DBI这样的高质量模块)的人。并非所有的 CPAN 代码都是高质量的,远离琐碎或基于实验代码的模块是可以的(前几天我对一个开发人员很生气,因为他想要引入Time::Format只是因为他没有'不知道 strftime 在POSIX中)。
最近在Perl Beginners上,有人想知道如何在不借助通常为该功能建议的 Perl 模块的情况下做某事。他或她不想从 CPAN 安装模块。这让我想到了我看到人们避免使用 CPAN 的原因,我想出了这种行为的五个原因以及每个原因的解决方案:
- 他们吓到你(回答,克服它)
- 他们吓到你的系统管理员(回答,通过在你的主目录中安装并使用 lib pragma 来解决它们)
- 您正在使用阻止您安装模块的托管服务(回答,获得更好的服务,有些便宜的服务不像白痴)
- 目标机器不一定有所需的模块(回答,使用 PAR 或 PAR::Packer)
- 目标机器完全被锁定(即您登录到 rbash 并且必须向第三方提供代码以包含在盒子上)(4 的组合并通过官僚机构)
- 您正在使用无法加载模块的 Perl 嵌入式版本(没有答案,您被卡住了,但这非常罕见)
那么,如果您不使用 CPAN,为什么以及为什么上面的答案不够充分?请注意,我不是在问您为什么不直接从 CPAN 在生产 boxen 上安装,而是在问您为什么避免使用 CPAN 中的模块(通过打包系统安装对我来说算作使用 CPAN)。