在Perl中有沒有任何方式來編程生成文件句柄?如何以編程方式生成多個Perl文件句柄?
我想同時打開10個文件,並使用由(CONST NAME + NUMBER)組成的文件句柄向他們寫入。例如:
print const_name4 "data.."; #Then print the datat to file #4
在Perl中有沒有任何方式來編程生成文件句柄?如何以編程方式生成多個Perl文件句柄?
我想同時打開10個文件,並使用由(CONST NAME + NUMBER)組成的文件句柄向他們寫入。例如:
print const_name4 "data.."; #Then print the datat to file #4
您可以將文件句柄直接粘貼到未初始化的陣列插槽中。
my @handles;
for my $number (0 .. 9) {
open $handles[$number], '>', "data$number";
}
不要忘了打印到陣列中的一個手柄的語法稍有不同:
print $handles[3] $data; # syntax error
print {$handles[3]} $data; # you need braces like this
這些日子裏,你可以指定文件句柄的標量(而不是使用表達式(如你的例子一樣)),所以你可以創建一個數組,並與填充它。
my @list_of_file_handles;
foreach my $filename (1..10) {
open my $fh, '>', '/path/to/' . $filename;
push $list_of_file_handles, $fh;
}
你可以,當然,使用variable variables代替,但他們是一個討厭的方法,並使用一個數組或哈希不是一個更好的選擇時,我從來沒有見過一個時間。
是不是可以將文件句柄存儲在數組中? – adamse 2010-01-10 17:15:23
有關完成此操作的完整章節,請參閱_Intermediate Perl_。 :) – 2010-01-10 23:17:05