我试图打开一个文件夹中的文件列表。最终我想在其中插入HTML片段。到目前为止,我可以打开文件夹并读取数组中的列表。这很好。但是当我尝试使用变量作为文件名打开文件时,每次都会收到错误消息(“权限被拒绝”)。无论我是否使用$ _或将列表项的值放入变量的其他变化。我在这里找到了类似的问题,但迄今为止没有找到解决方案。以下是我的代码:
use strict;
use warnings;
my ($line);
opendir (FOLDER,"path/to/folder/./") or die "$!";
my @folderlist = readdir(FOLDER);
my @sorted_folderlist = sort @folderlist;
close(FOLDER);
foreach (@sorted_folderlist) {
my $filename = $_;
open (READ, ">", "path/to/folder/$filename") or die "$!";
# do something
close (READ);
}
这里有什么错误?我该如何使用变量作为文件名来打开文件?Pjoern,以下是我修改后用于回答问题1的代码:
my $dh;
opendir $dh, "dir/./" or die ...
my @folderlist = grep { -f "dir/$_" } readdir $dh;
close $dh;
my @sorted_folderlist = sort @folderlist;
foreach my $filename (@sorted_folderlist) {
open my $fh, "<", "dir/$filename" or die ...
open my $writeto, ">", "new/$filename" or die ...
print $writeto "$fh";
close $fh;
close $writeto;
}
print $writeto "$fh"
非常奇怪 :-) - Dave Cross