Если вы действительно хотите сделать это в Perl по какой-то причине:
opendir DIR, '/some/dirname' or die "$!";
open FILE, '>', '/some/outputfile' or die "$!";
print FILE "$_\n" while readdir DIR;
close FILE;
closedir DIR;
отредактировано, чтобы вставить новые строки в выходной файл ... упс!
Чтобы сделатьэто более универсально, вы можете сделать другие вещи с именем файла, разделив средний бит вверх:
my $filename = readdir DIR;
# do something with $filename
print FILE $filename, "\n";
В первом примере вместо этого используется местоимение Perl $_
.
Но, как указал @ Ronin420, гораздо проще сделать ls -a1 /some/dirname > /some/outputfile
(при перенаправлении stdout в файл ls
также добавит и сам -1
)