For the sake of defensive programming, and to be cross
platform compatible, you could also use File::Spec::Functions to be safe.
File::Spec::Functions has two routines that will return the characters
used to represent the current and upper directory for
your specific operating system. While it may be true that
most OS's use "." and ".." to represent the
current directory and upper directory, it may not necessarily be
garaunteed. If it was, I doubt these functions
would have been put into the module in the first
place. =)
Here's your example using File::Spec::Functions:
use File::Spec::Functions qw(curdir updir);
#..
next if $file eq curdir or $file eq updir;