Đối với một số lý do Perl giữ bộ nhớ đệm các mục thư mục Tôi đang cố gắng để đọc sử dụng readdir:Tại sao các mục nhập thư mục bộ nhớ cache của Perl's readdir()?
opendir(SNIPPETS, $dir_snippets); # or die...
while (my $snippet = readdir(SNIPPETS))
{ print ">>>".$snippet."\n"; }
closedir(SNIPPETS);
Kể từ thư mục của tôi chứa hai tập tin, test.pl và test.man, tôi đang mong đợi đầu ra sau:
.
..
test.pl
test.man
Thật không may Perl trả về nhiều tệp đã bị biến mất, ví dụ vì tôi đã cố đổi tên chúng. Sau khi tôi di chuyển test.pl-test.yeah Perl sẽ trở lại danh sách sau đây:
.
..
test.pl
test.yeah
test.man
lý do cho hành vi kỳ lạ này là gì? Tài liệu dành cho opendir, readdir và closedir không đề cập đến một số loại cơ chế lưu vào bộ nhớ cache. "ls -l" rõ ràng chỉ liệt kê hai tệp.
Cả đọc trước và đọc trước 'readline' và' readdir'. Đó là bản chất của con thú. – tchrist