アプリ版:「スタンプのみでお礼する」機能のリリースについて

OS:WindowsXP SP2(ファイルシステムはNTFS)
Perl:5.6.1

Perlで4GB以上のファイルに対して、一定の処理を行いたいのですが、
ファイルサイズを正しく取得することができません。

ファイルテストの-sを使う方法とstat関数を使う方法を試しましたが、
どちらも結果は同じで、取得した数値は正しいものではありません。

尚、同様の環境で2GB(正確な境界はわからないが大体このくらい)
以下のファイルであれば正しいファイルサイズをとることができます。


また、以下のような別の環境で試したところ、2GBを超えている
ファイルでも問題なくファイルサイズを取得することができました。

OS:WindowsVista
Perl:5.8.8


できれば、原因と解決法の両方を教えてもらいたいです。

そして、可能な限りPerlのみで解決したく、それもなるべく軽い処理で
行いたいです。

よろしくお願いします。

A 回答 (1件)

Windows上のPerlということはActivePerlですか?


であれば、ドキュメントに理由が載ってます。

changes-58.html
(インストールしたディレクトリの htmlというサブディレクトリの下にあります)
Build 804 Friday, Nov 29, 2002

What's new in the 800 Series

Support has been enabled for large file access on all platforms, meaning that file manipulation facilities within perl can cope with files larger than 2GB or 4GB.


原因は5.6系列では未対応だったから。
対処法はバージョンを上げること。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!