Globbing a Directory

How to read a directory in Perl

Working on a laptop
Dominik Pabis/E+/Getty Images

It's very simple to print a list of all files in a directory using the built-in Perl glob function. Let's look over a short script that globs and prints a list of all files, in the directory containing the script itself.

Examples of the Perl Glob Function

 #!/usr/bin/perl -w
 
 @files = <*>;
 foreach $file (@files) {
   print $file . "\n";
 } 

When you run the program, you'll see it output the filenames of all files in the directory, one per line.

The glob is happening on the first line, as the <*> characters pulls the filenames into the @files array.

 @files = <*>; 

Then you simply use a foreach loop to print out the files in the array.

You can include any path in your filesystem between the <> marks. For example, say your website is in the /var/www/htdocs/ directory and you want a list of all the files:

 @files = </var/www/htdocs/*>; 

Or if you just want a list of the files with the extension .html:

 @files = </var/www/htdocs/*.html>; 
Format
mla apa chicago
Your Citation
Brown, Kirk. "Globbing a Directory." ThoughtCo, Oct. 31, 2017, thoughtco.com/globbing-a-directory-2641092. Brown, Kirk. (2017, October 31). Globbing a Directory. Retrieved from https://www.thoughtco.com/globbing-a-directory-2641092 Brown, Kirk. "Globbing a Directory." ThoughtCo. https://www.thoughtco.com/globbing-a-directory-2641092 (accessed December 15, 2017).