perlでzipの圧縮、解凍について教えて下さい

.
圧縮
$string = "unntarakanntara";
のような感じで文字列があります。これを圧縮してzipファイルを作って下さい。
.
解凍
test.zipファイルがあります。
ファイル構成は、ディレクトリなど作成せず、test.txtファイルが1つ入っているだけです。
test.txtをファイルとして解凍したいわけではなく、文字列として読み込みたいのですがどのようにスクリプトを書けば良いでしょうか?
なるべく軽く、一般的なレンサバで使えそうな方法を教えて下さい。
.
宜しくお願い致します。

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/09/15 16:21:16
  • 終了:2010/09/16 00:35:46

回答(2件)

id:deflation No.1

deflation回答回数1036ベストアンサー獲得回数1262010/09/15 16:59:59

標準モジュール(Archive)で、ZIPでの圧縮/解凍ができます。

サンプルソースは下記をご覧ください。

http://d.hatena.ne.jp/chaichanPaPa/20090211/1234322455

id:TREEG

回答いただきありがとうございます。

これでは単なるファイルの解凍や圧縮ではないでしょうか?

zipファイルを

$string = "string";

のように保持している状態から、いきなり、zipファイルを作ったり、

zipファイルから一時ファイルを作ることなく、いきなり、

$string = "string";という様な感じにしたく思っています。

宜しくお願い致します。

2010/09/15 22:01:37

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 nmrdfg 50 11 0 2010-09-15 22:29:33
  • id:TREEG
    http://www.jp-z.jp/perlmemo/file_Compress-Zlib.html
    で解決しました。
  • id:TREEG
    nmrdfgはスパムのためオープンしません。
  • id:b-wind
    >http://www.jp-z.jp/perlmemo/file_Compress-Zlib.html
    gzip と zip は全く別物だけどそこはいいのか?
    単に圧縮処理をしたいだけなら gzip の方が向いている。

    zip は圧縮だけでなく書庫としての機能もあるので、
    フォルダやファイルといった概念を取り外すのは面倒だからね。
  • id:TREEG
    コメントありがとうございます!
    >gzip と zip は全く別物だけどそこはいいのか?
    >単に圧縮処理をしたいだけなら gzip の方が向いている。
    そもそも、gzipとzipが全くの別物ということを知りませんでした。
    先ほどWikiを確認してビックリしました。
    Windowsの圧縮解凍ソフトではどちらも同じように解凍できていましたので拡張子だけ違い、同じファイル物だと思っていました。
    ご指摘いただき本当にありがとうございます。
    今回の用途では圧縮さえ出来れば全く問題無いので大丈夫でした。
  • id:SecondFlower
    支払い率 83.93%
    http://q.hatena.ne.jp/TREEG/
  • id:TREEG
    SecondFlowerさん
    受け取り率 14.29%
    こういったユーザが減れば支払い率も100%になるんですけどねw
  • id:karuishi
    CPANからArchive::Zipモジュール入れるとか。
    http://search.cpan.org/~adamk/Archive-Zip-1.30/lib/Archive/Zip.pm
  • id:TREEG
    コメントありがとうございます。
    Archive:ZIPモジュールはすでに入れているのですが、
    変数に入れたまま文字列を直接圧縮や解凍する方が分からず困っていました。
    ちゃんとググレば良かったのですが取り急ぎ知りたかったため質問させていただきました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません