CGI (Perl) でtarを使うには?


[ Follow Ups ] [ Post Followup ] [ DIGIWEB 日本語Users' BBS ] (PR) [レンタルサーバー]

Posted by 小牧徹夫 on December 10日 (1996年) 17時40分41秒:

Perlで~/public_htmlのサブディレクトリのファイルをtar/gzでアーカイブして返すようなCGIを作りたいのですが、うまくいきません。
$DIRにサブディレクトリ名が入っているとして、

chdir "$HOME/public_html/$DIR";
print "Content-Type: application/x-gzip\n\n";
open(ARCHIVE, "/usr/sbin/tar cf - .| /opt/gnu/bin/gzip |");
while (read(ARCHIVE, $_, 1)) { print; }

という風にしているのですが、空のファイル(0個のファイルを含んだ、形式的には正しいgzipファイル)が返ってきてしまいます。
open文のtarのところをlsなどとすると意図した通りにディレクトリ一覧のgzipされたものが返ってくるので、パイプのところがまずいのかと思って頭に「$| = 1;」などを入れても改善されません。
何が問題なのでしょうか?



Follow Ups:



Post a Followup

名前:
メールアドレス:

題名:

内容:

関連URL:
関連URLのタイトル:
関連画像のURL:


[ Follow Ups ] [ Post Followup ] [ DIGIWEB 日本語Users' BBS ]