これもまた初心者の質問であることは承知していますが、私は非常にイライラしており、再び悟りを開きたいと思っています。皆さんの指導により、グロブ関数を使用してディレクトリ内の各ファイルの内容を読み取る方法を既に学びました。現在、readdir-foreach の組み合わせで同じことをしようとしていますが、「ファイルを開けません: 許可が拒否されました」というエラーが表示され続けます。管理者と同じディレクトリ、同じファイル、同じ自分でこれが発生するのはなぜですか。誰かが私が間違っていることを親切に教えてもらえますか? ありがとう。
次のコードは glob 関数を使用しており、機能します。
#! perl
my $dir = 'f:/corpus/';
my @files = glob "$dir/*";
foreach my $file (@files) {
open my $data, '<',"$file" or die "Cannot open FILE";
while(<$data>) {
...}
次のコードは失敗し、「ファイルを開けません: 権限が拒否されました」というエラー メッセージが表示されます。しかし、なぜ?
#! perl
my $dir = 'f:/corpus/';
opendir (DIR,'f:/corpus/') or die "Cannot open directory:$!";
my @files=readdir(DIR);
closedir DIR;
foreach my $file (@files) {
open my $data, '<',"$file" or die "Cannot open FILE:$!";
while(<$data>) {
...}