- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ディレクトリ全てのファイルを読み取るには?)
ディレクトリ全てのファイルを読み取るには?
このQ&Aのポイント
- フリーのCGI掲示板を使っています。ディレクトリ内に複数のログファイルがあるため、一括して編集・削除ができるように管理部分を改造したいです。一応、readdir関数でディレクトリ内にある全てのファイル名を取得することは分かりましたが、open関数で全てのファイルを読み取らせる方法がわかりません。
- ディレクトリ内の全てのファイルを読み取る方法を教えてください。CGI掲示板で使用しているディレクトリ内には複数のログファイルがあり、これらのファイルを一括で処理したいと考えています。readdir関数を使用してファイル名を取得することはできましたが、それぞれのファイルをopen関数で読み取る方法が分かりません。
- フリーのCGI掲示板を使っています。ディレクトリ内に複数のログファイルがあり、これらのファイルを一括して編集・削除したいと考えています。readdir関数を使用してファイル名を取得することはできましたが、open関数で全てのファイルを読み取らせる方法が分かりません。どのようにすれば実現できるでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
エラー処理はオリジナルの&error()を使ったほうがよいかもしれないけど use File::Spec; my $dir = './log'; opendir my $dh, $dir or die "$dir:$!"; for ( readdir $dh ) { my $file = File::Spec->catfile( $dir, $_ ); if ( !-f $file or !-r $file) { print "$file is not file or readable\n"; next; } print "\n--- $file\n"; open my $fh, '<', $file or die "$file:$!"; while ( defined( my $line = <$fh> ) ) { # 処理 # print $line; # my ($no,$dat,$nam,$eml,$sub,$com,$url,$hos) = split /<>/, $line; # ... } close $fh or die "$file:$!"; } closedir $dh or die "$dir:$!";
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
「一気に全てのファイルを読み込む」ことはできないので, 1つずつ読み込んでください.
お礼
ありがとうございます。 参考にさせていただいた結果、試行錯誤の末にようやく完成しました!