2

我正在执行以下步骤:

读取目录中的所有文本文件并将其存储在名为 @files 的数组中 对每个文本文件运行 foreach 循环。使用拆分操作提取文件名(剥离 .txt)并创建该特定文件名的文件夹。将该文件重命名为 Test.txt(以便作为另一个 perl 可执行文件的输入) 通过添加行为每个文件执行 test.pl require "test.pl";它仅适用于一个文件,但不再适用。这是我的代码:

opendir DIR, ".";
my @files = grep {/\.txt/} readdir DIR;

foreach my $files (@files) {

    @fn = split '\.', $files;
    mkdir "$fn[0]" 
        or die "Unable to create $fn[0] directory <$!>\n";

    rename "$files", "Test.txt";
    require "test3.pl";

    rename "Test.txt", "$files";
    system "move $files $fn[0]";
}
4

2 回答 2

2

您不需要require加载一次文件,而是do每次都加载。

所以,更换

需要“test3.pl”;

做“test3.pl”;

于 2013-05-28T12:26:16.497 回答
1

你能在那个目录中查找文件吗..

代替,

opendir DIR, ".";
my @files = grep {/\.txt/} readdir DIR;

和,

my @files = <*.txt>;
于 2013-05-28T12:18:46.093 回答