Полное руководство: перечисление файлов и папок в Perl

При работе с файловыми системами в Perl очень важно иметь возможность выводить список файлов и папок внутри каталога. В этом подробном руководстве мы рассмотрим различные методы решения этой задачи, предоставляя попутно примеры кода. Независимо от того, являетесь ли вы новичком или опытным программистом Perl, эта статья предоставит вам множество методов эффективного составления списка файлов и папок.

Метод 1: использование функций opendir и readdir

opendir(my $dh, '/path/to/directory') or die "Cannot open directory: $!";
my @files = readdir($dh);
closedir($dh);
foreach my $file (@files) {
    next if ($file eq '.' or $file eq '..');
    if (-f "$path/$file") {
        print "File: $file\n";
    } elsif (-d "$path/$file") {
        print "Directory: $file\n";
    }
}

Метод 2: использование функции glob

my @files = glob('/path/to/directory/*');
foreach my $file (@files) {
    next if ($file eq '.' or $file eq '..');
    if (-f $file) {
        print "File: $file\n";
    } elsif (-d $file) {
        print "Directory: $file\n";
    }
}

Метод 3: использование модуля File::Find

use File::Find;
sub process_file {
    my $file = $File::Find::name;
    if (-f $file) {
        print "File: $file\n";
    } elsif (-d $file) {
        print "Directory: $file\n";
    }
}
find(\&process_file, '/path/to/directory');

Метод 4: использование модуля Path::Class

use Path::Class;
my $dir = dir('/path/to/directory');
while (my $file = $dir->next) {
    next if $file->is_dotdir;
    if ($file->is_file) {
        print "File: " . $file->basename . "\n";
    } elsif ($file->is_dir) {
        print "Directory: " . $file->basename . "\n";
    }
}

Метод 5: использование модуля File::Slurp

use File::Slurp;
my @files = read_dir('/path/to/directory');
foreach my $file (@files) {
    next if ($file eq '.' or $file eq '..');
    if (-f "$path/$file") {
        print "File: $file\n";
    } elsif (-d "$path/$file") {
        print "Directory: $file\n";
    }
}

В этой статье мы рассмотрели пять различных методов вывода списка файлов и папок в Perl. Каждый метод имеет свои преимущества, и выбор зависит от конкретных требований вашего проекта. Имея в своем распоряжении несколько методов, вы сможете эффективно обрабатывать операции с файловой системой в Perl, повышая свою производительность как программиста.