只需打开一个文件进行输出即可为您创建它。
你没有说你的文件名列表来自哪里,但是在下面的程序中我已经硬编码了它。
请注意,没有必要关闭文件句柄$fh
,因为当变量在循环的每个循环结束时超出范围时,Perl 会自动关闭它。
-e
操作员将检查文件是否存在。-f
或者,如果节点存在且不是目录,您可以使用which is true 。如果已经有同名目录,open
则将失败
use strict;
use warnings;
my @files = qw/
UEDP01_20120821.csv
UEDP02_20120821.csv
UEDP03_20120821.csv
UEDP04_20120821.csv
UEDP05_20120821.csv
/;
for my $file (@files) {
open my $fh, '>', $file or die $! unless -e $file;
}
更新
正如 Bill Ruppert 所建议的,您可能更喜欢打开文件进行追加,无论它们是否存在。如有必要,这将创建文件,但如果它们已经存在,则保持原样
use strict;
use warnings;
my @files = qw/
UEDP01_20120821.csv
UEDP02_20120821.csv
UEDP03_20120821.csv
UEDP04_20120821.csv
UEDP05_20120821.csv
/;
open my $fh, '>>', $_ or die $! for @files;