によって行われる暗黙のクローズを使用してもリセットされないPerlの状態のドキュメント。私はこれが何を意味するのかを正確に見ようとしていましたが、それを実現することができませんでした。これが私のスクリプトです:close
$.
open
use strict;
use warnings;
use autodie;
my @files = qw(test1.txt test2.txt test3.txt);
#try with implicit close
for my $file (@files){
open my $fh, '<', $file;
while(<$fh>){
chomp;
print "line $. is $_\n";
}
#implicit close here
}
そして、ここに読み込まれる3つのファイルすべての内容があります。
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
明示的には呼び出さないのでclose
、暗黙的close
に使用する必要があり(私は思う)、$.
リセットしないでください。ただし、スクリプトを実行すると、この出力が表示され、$が表示されます。リセットされます:
line 1 is line 1
line 2 is line 2
line 3 is line 3
line 4 is line 4
line 5 is line 5
line 6 is line 6
line 7 is line 7
line 8 is line 8
line 9 is line 9
line 10 is line 10
line 1 is line 1
line 2 is line 2
line 3 is line 3
line 4 is line 4
line 5 is line 5
line 6 is line 6
line 7 is line 7
line 8 is line 8
line 9 is line 9
line 10 is line 10
line 1 is line 1
line 2 is line 2
line 3 is line 3
line 4 is line 4
line 5 is line 5
line 6 is line 6
line 7 is line 7
line 8 is line 8
line 9 is line 9
line 10 is line 10
確かにリセットされているようです。ドキュメントの私の理解は間違っていますか?close
暗黙のリセットが行われない状況を誰かに教えてもらえますか$.
?
ちなみに、私はストロベリー5.16.1を使用しています。