

...making Linux just a little more fun!
Thomas Bonham [thomasbonham at bonhamlinux.org]
Hi All,
Here is a 2-cent tip that is a little Perl script for looping through directories.
#!/usr/bin/perl
# Thomas Bonham
# Create on 05/27/2008
# Function is to list all contents of a directory
use Cwd;
sub searchdir
{
my $dir = shift;
my $cwd = getcwd();
if ($dir ne "") {
unless (chdir($dir)) {
print STDERR "Unable to chdir to $cwd/$dir: $!\n";
return;
}
}
opendir(DIR, ".");
my @files = readdir(DIR);
closedir(DIR);
foreach my $file (@files) {
next if $file eq "." || $file eq "..";
if (-d $file) {
searchdir($file);
next;
}
# Do what you would like here
print getcwd(),"/",$file,"\n";
}
chdir($cwd);
}
sub main() {
searchdir();
}
main();
Thomas
Ben Okopnik [ben at linuxgazette.net]
On Tue, May 27, 2008 at 03:41:01PM -0700, Thomas Bonham wrote:
> Hi All, > > Here is a 2-cent tip that is a little Perl script for looping through > directories.
Why not just use 'File::Find'? It's included in the default Perl install, and is both powerful and flexible.
use File::Find;
find(sub { do_whatever_you_want_here }, @directories_to_search);
For more info, see 'perldoc File::Find'.
-- * Ben Okopnik * Editor-in-Chief, Linux Gazette * http://LinuxGazette.NET *