Задача:

Необходимо получить имена всех файлов каталога в массив @files.

Решение:

Откроем каталог функцией opendir и последовательно считаем имена файлов функцией readdir:

my $dir = '/home/dir_name';
my @files;

opendir(DIR, $dir) or die "can't opendir $dir: $!";

while (defined(my $file = readdir(DIR))) {
	next if $file =~ /^\.\.?$/;
	push @files, $file;
}

closedir(DIR);