2

これは私の専門分野ではないので、うまくいけば正しい質問をしています。

リース ローリング中のサーバーがあります。古いサーバーは 32 ビットの Windows サーバーで、新しいサーバーは 64 ビットの Windows 2008 R2 SP1 です。

Web アプリケーションの 1 つは、Perl を使用していくつかのスクリプトを実行します。

  1. 新しい 64 ビット マシンで同じ 32 ビット バージョンを実行できますか? (たとえば、同じバージョンがあり、一方が 32 ビットで、もう一方が 64 ビットである場合、それらは本質的に同じですか?)
  2. スクリプトが 32 ビット バージョンで動作している場合、64 ビット バージョンの Perl でも動作する必要がありますか?

ご不明な点がございましたら、お気軽にお問い合わせください。チームの適切な担当者にお尋ねいたします。

4

3 に答える 3

2

あなたの両方の質問に対する答えはイエスだと思います。32 ビット アプリケーションは 64 ビット Windows で正常に動作するはずですが、64 ビット機能を利用することはできません (大きなアドレス空間を解析したい場合は、より大きな使用可能なアドレス空間が最も重要になる可能性があります)。 XML::Twig を使用した XML ;-)。

32 ビット perl で実行されているスクリプトは、64 ビット perl ですべてのモジュールを順番に取得していれば、64 ビット perl でも動作します。これらは通常、異なるディレクトリから実行されるためです。また、Windows の 64 ビット perl の場合、おそらく Strawberry perl、ActiveState perl などが必要になることに注意してください。私の知る限り、Cygwin は 32 ビットのみです。

于 2012-05-08T16:26:21.413 に答える
2

互換性が気になる場合は、64 ビット マシンで 32 ビット バージョンの perl を実行できるはずです (両方が x86 であると仮定します)。ただし、スクリプトに影響を与えないいくつかの例外を除いて、64 ビット バージョンは 32 ビット バージョンとほぼ同じように動作するはずです。(ほとんどの場合、モジュール内の C/XS コードと関係があります。バイナリ互換性に関するものです。つまり、モジュールは 64 ビット用にビルドする必要があります。幸いなことに、うまくいかない Perl インタープリターはビルドを自動的に実行してくれます。 *nix の場合、または ActiveState のように事前にビルドされたモジュールを含むパッケージ マネージャーを提供します。)

于 2012-05-08T16:35:30.497 に答える
2
  1. はい、依存関係のビルド手順を含め、適切に再デプロイする限り可能です。ファイルをコピーするだけでは、アプリケーション スタック全体が純粋な Perl である場合にのみ機能しますが、これはありそうもありません。— はい、本質的には同じですが、バイナリ互換性がありません。
  2. はい。依存関係で問題が発生する可能性がありますが、32 ビットと 64 ビットの違いが原因で失敗するモジュールの数はごくわずかです。
于 2012-05-08T16:32:53.060 に答える