Linuxサーバーで PerlでプログラミングしたCGIを動作させているのですが、
現在不都合が起きて困っております。

動作内容は FTPでアップロードした exe(自己解凍書庫)ファイルを
CGI経由でダウンロードさせる物です。

---- ここから ----
$|=1;
print "Content-Type: application/octet-stream\n";
print "Content-Disposition: attachment; filename=\"$file\"\n\n";

open(FILE, "$file_path$file") || die;
binmode(FILE);
binmode(STDOUT);
print <FILE>;
close(FILE);
----- ここまで ----

exeファイル以外は上手くいったのですが、(Lzh、zip等)
exeファイルの場合は ダウンロードは出来るものの、
アップロード時とファイル容量が違っておりました。

アップロード時:32,051 バイト
ダウンロード時:37,718 バイト

ダウンロードした後実行すると、
「ヘッダーの内容が不正 解凍できません」とエラー表示されます。

print "Content-Type: application/octet-stream\n";
上記を print "Content-Type: application/x-msdownload\n"; に変更してみたのですが、
それでも上手くいきませんでした。

何か解決策があれば教えてください。