Какой порядок Perl использует по умолчанию для чтения всех файлов в каталоге? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть файлы .gz внутри директории, и я читаю их с Perl. Все в порядке, но я не понимаю, в каком порядке эти файлы читаются. Конечно, я могу сказать, что это не по алфавиту. Поэтому мой вопрос в том, какой порядок Perl использует по умолчанию для чтения файлов из каталога.

Ниже приведен фрагмент моего кода

# Open the source file  
my $dir = "/home/myname/mydir";

# Open directory and loop through
opendir(DIR, $dir) or die $!;

while (my $file = readdir(DIR)) {
    # We only want files
    next unless (-f "$dir/$file");

    # Use a regular expression to find files ending in .gz
    next unless ($file =~ m/\.gz$/);

    my $gzip_file = "./mydir/$file";

    open ( my $gunzip_stream, "-|", "gzip -dc $gzip_file") or die $!;
    while (my $line = <$gunzip_stream> ) {
        print ("$line\n");
    } 
}

1 Ответ

3 голосов
/ 16 апреля 2020

readdir возвращает файлы в том же порядке, в котором их возвращает система. Я не в курсе какой-либо гарантии заказа от любой ОС. Я полагаю, что разные диски могут вести себя по-разному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...