如何以编程方式生成多个Perl文件句柄?

dan*_*dan 3 perl filehandle

Perl有没有办法以编程方式生成文件句柄?

我想同时打开十个文件并使用包含(CONST NAME + NUMBER)的文件句柄写入它们.例如:

 print const_name4  "data.."; #Then print the datat to file #4
Run Code Online (Sandbox Code Playgroud)

Por*_*lus 9

您可以将文件句柄直接插入未初始化的阵列插槽中.

my @handles;
for my $number (0 .. 9) {
    open $handles[$number], '>', "data$number";
}
Run Code Online (Sandbox Code Playgroud)

不要忘记打印到数组句柄的语法略有不同:

print $handles[3] $data;    # syntax error
print {$handles[3]} $data;  # you need braces like this
Run Code Online (Sandbox Code Playgroud)


dra*_*tun 5

有了一点IO::File地图你也可以这样做:

use IO::File;

my @files = map { IO::File->new( "file$_", 'w' ) } 0..9;

$files[2]->print( "writing to third file (file2)\n" );
Run Code Online (Sandbox Code Playgroud)