Perl兼容性
问题描述:
这不是我的专业领域,所以我希望问一个正确的问题。Perl兼容性
我们有一个租赁滚动的服务器。旧服务器是32位Windows服务器,新服务器是64位Windows 2008 R2 SP1。
其中一个Web应用程序使用Perl来运行一些脚本。
- 我们可以在新的64位机器上运行相同的32位版本? (例如,如果有相同的版本,但一个是32位,一个是64位,它们基本上是一样的吗?)
- 如果脚本在32位版本上工作,它应该仍然在64位Perl的版本?
如果问题需要澄清,请让我知道,我会看到关于询问我们团队中的适当人员。
答
我认为你的问题的答案是肯定的。 32位应用程序应该在64位Windows上运行良好,但无法使用任何64位功能(如果希望解析大的话,更大的可用地址空间可能是最重要的XML使用XML :: Twig ;-)。
在32位perl下运行的脚本将在64位perl上工作,前提是您获得64位perl的所有模块,因为它们通常从不同的目录运行。另外,请注意,对于Windows上的64位perl,您可能需要使用Strawberry perl,ActiveState perl或类似软件。就我所知,Cygwin只有32位。
答
- 是的,你可以,只要你正确地重新部署,包括依赖的构建步骤。只需将整个应用程序堆栈设置为纯Perl即不可能,只需将文件复制过来即可。 —是的,它们基本相同,但二进制不兼容。
- 可能是的。依赖关系可能会出现问题,但由于32位/ 64位差异而导致失败的模块数量极少。
答
如果您担心兼容性问题,则应该能够在64位计算机上运行32位版本的Perl(假设两者均为x86)。但是64位版本应该或多或少地与32位版本相同,但有一些例外情况不应该影响脚本。 (他们必须在模块中使用C/XS代码,主要是二进制兼容性的东西,意思模块必须为64位构建,幸运的是,任何不会吸收的Perl解释器都会为你构建这些东西* nix的情况,或者提供一个包含ActiveState之类的预建模块的软件包管理器。)
我会将答案带给我的团队,然后将适当的答案标记为正确。谢谢你们用简单的语言回答。 – HPWD