【发布时间】:2011-02-10 13:48:29
【问题描述】:
对 Perl 很陌生,但对动态语言不熟悉,我对模块管理的不直接性感到有些惊讶。
当然,cpan X 理论上可行,但我正在使用三台不同的机器和操作系统(在工作中、在家中、在外部环境中测试)处理同一个项目。
- 在工作中 (Windows 7) 我在使用
cpan时遇到问题,因为我们的防火墙导致 ftp 无法使用 - 在家里 (Mac OS X) 可以正常工作
- 在外部环境 (Linux CentOs) 中,它在下班后工作,因为我没有 root 访问权限,我必须配置
cpan以作为非 root 用户运行 - 我已经尝试在我可以访问的另一台服务器上。如果以前的外部环境是 VPS,所以我有 shell 访问权限,那么另一个是廉价的共享主机,除了预安装的模块之外,我无法安装新模块
目前我仍然无法在 Windows 下安装Template。我已经看到作为替代方案我可以编译它,我也尝试过 ActiveState 的 PPM,但该模块不存在。
现在,我的困惑在于 Perl 是一种动态语言。我在工作时遇到了所有这些问题,例如,在使用 C 时,我必须为所有平台编译所有库,但我认为使用 Perl 的方法与 90 年代的 Python 或 PHP 非常相似% 的情况下复制目录中的模块并导入它很简单。
所以,我的问题是:如果 Perl 的模块是用 Perl 编写的,为什么复制/粘贴方法不起作用?如果必须编译某些(或某些部分)模块,如何在 CPAN 中查看模块是仅 Perl 还是依赖于已编译的库?没有办法下载模块(tar,zip ...)并使用cpan来部署它吗?这将解决我在 Windows 下的问题。
【问题讨论】:
-
用 Perl 编写模块时,您可以复制它们。是的,你也可以“cpan”。虽然这让你自己解决依赖关系。
-
VPS 通常意味着 root 访问,而不仅仅是 shell 访问。
-
您在 Windows 上使用什么? Strawberry Perl,ActiveState,还有什么?我相信 ppm 有模板工具包。如果您在安装 Template Toolkit 时遇到问题,您可以随时尝试 Template::Tiny,它只依赖于 Capture::Tiny,而后者又只依赖于核心 Perl 模块
-
我在工作中也遇到了 ftp 问题。但是在禁用 ftp (
o conf ftp '')、设置http_proxy设置并指向使用http的 CPAN 镜像站点后,cpan工作正常。没那么难。 -
有什么原因你不能仅仅出于兴趣而使用 PHP,它在跨服务器甚至跨操作系统方面往往不那么脆弱。