If you're trying to write cross-platform code you may
want to keep something else in mind - another thing that
isn't absolutely gauranteed is the characters the OS
uses to represent the current and the parent directories.
I use File::Spec::Functions's no_upwards()
function to check and see if the filename is the current
working or parent directory or not:
#!/usr/bin/perl -wT
use strict;
use File::Spec::Functions qw(catdir rootdir no_upwards);
use constant START_DIR => catdir(rootdir, qw(users foo));
opendir DIR, START_DIR
or die 'Could not open directory ', START_DIR, ": $!";
while( defined(my $file = readdir DIR) ) {
next unless no_upwards($file);
print "$file\n";
#...do something with $file
}
closedir DIR;