in reply to Re^2: Testing the current directory with Cwd and File::Spec
in thread Testing the current directory with Cwd and File::Spec
Now, that may not be the best way, but I'd vote for it as easiest. :-)
Two comments.
First, File::chdir uses Cwd and File::Spec internally, which means it's potentially just as subject to the issues raised in the meditation. The Anonymous Monk was suggesting opening and saving the filehandle, not the directory name. That's quite a bit different and would be more robust to name issues. However, the meditation was about comparing the current directory to a desired one -- which in a test suite is specified by name, not filehandle, so that doesn't really help either.
Second, my hope is that people may find File::pushd to be even easier -- at least for the directory reverting part. Here's something like your first example with File::pushd -- no localization needed:
use Cwd; use File::pushd; print cwd; { my $dir = pushd('subdir'); print join("\n", glob '*'); } # back where we started print cwd; print join("\n", glob '*');
And a File::pushd version like your second example -- with no needing to manually change back to a saved directory:
use File::pushd; { my $wd = pushd(); chdir('subdir'); # do some work. } # automatically back in original dir
Where it really shines is with temporary directories that need to clean themselves up:
use File::pushd; { my $wd = tempd(); # do work in the temporary directory } # back in the original directory and the temporary directory is delete +d
-xdg
Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Testing the current directory with Cwd and File::Spec
by Celada (Monk) on Dec 06, 2005 at 05:45 UTC |