Mobile Number Tracker
Trace Mobile Number Earn Money Online
© TechWelkin.com

Perl: How to List All Files in a Directory

Samyak Lalit | October 17, 2012 (Last update: November 10, 2014)

Samyak Lalit is an Indian author and disability rights activist. He is the principal author and founder of projects like TechWelkin, WeCapable, Viklangta, Kavita Kosh among many others.

Perl makes life easy! In short lines of code it can make any task easier which otherwise looks arduous to do. At times we need to print a list of all the files present in a folder. It is a very basic task and Perl does it in a blink.

READ ALSO: Make list of all files in a folder using MS DOS commands

Yesterday, I needed to make a list of all the files present in a folder except a couple of files. If you also need to accomplish a similar task, you can use the following piece of Perl code:

my $directory = shift;
opendir(d, "$directory") || die "Can't open $directory: $!\n";
my @flist = readdir(d);
closedir(d);
foreach my $f (@flist) {
  print "\$file = $f\n";
}

Save this code in a file, let’s say, myfile.pl

Now you can run this Perl script while giving the path of the directory as first parameter.

perl myfile.pl “c:\project”

First line of the code will extract the first parameter and store it in the $directory variable. The second line tries to open the provided directory. Third line reads the content of opened directory into an array @flist. Fourth line in this Perl code closes the directory. And then a for loop lists the content of @flist array.

I hope it was useful for you. Please feel free to ask if you have any questions on this topic. I will be happy to try and help you. Thank you for using TechWelkin.

© TechWelkin.com

One response to “Perl: How to List All Files in a Directory”

  1. Obed says:

    Hello,
    Nice Blog and post. I’m new in Perl and I need to list all file contained in a directory and write them in a text file, and when the file has had a determinate size that it can rename and create automaticaly a new file with the current date and hour.

    Is that possible?
    Thanks
    Obed

Leave a Reply

Your email address will not be published. Required fields are marked *