我使用的语法是:
my @inFiles = </var/test1/*.*>;
将目录中的文件放入数组中。
如何将第二个目录中的文件放到同一个数组中?
伪代码:(我知道这不是真的)
my @inFiles += </var/test2/*.*>;
注意:我不能依赖于相似目录的名称,因此我无法执行以下操作:
my @inFiles = </var/test*/*.*>;
答案 0 :(得分:6)
使用push
将元素添加到数组的末尾
push @inFiles, </var/test2/*.*>;
答案 1 :(得分:1)
正如Miller所述,您可以使用push或unshift向数组添加项目。有关完整的Perl文档,请参阅Perldoc。
但是,在使用目录时,最好的办法是使用File::Find来解析目录:
use strict;
use warnings;
use function qw(say);
use File::Find;
# Directories you want to use
my @directories = qw(/directory/first /directory/second);
my @files; # Files in those directories you want
find (
sub {
return unless -f; #Files only...
push @files, $File::Find::name; # Name of the file you found
}, @directories
);
完成后,两个目录中的所有文件都将位于@files
中。这不仅包括目录下的文件,还包括子目录。