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
파일 핸들을 초기화되지 않은 배열 슬롯에 직접 붙일 수 있습니다. 당신은이 작업을 수행 할 수 있습니다 map
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을 사용할 수 있지만, 그들은 불쾌한 접근하고 배열을 사용하거나 해시가 더 나은 내기 아니 었 때 한 번 본 적이 없어.
IO::File
의 비트와 :
my @handles;
for my $number (0 .. 9) {
open $handles[$number], '>', "data$number";
}
배열의 핸들로 인쇄의 구문이 약간 다르다는 것을 잊지 마십시오
use IO::File;
my @files = map { IO::File->new("file$_", 'w') } 0..9;
$files[2]->print("writing to third file (file2)\n");
배열에 파일 핸들을 저장할 수 없습니다? – adamse
_Intermediate Perl_에는 전체 장이 나와 있습니다. :) –