On Jan 29, 2008 8:34 AM, David Golden <[EMAIL PROTECTED]> wrote:
> On Jan 29, 2008 3:44 AM, Michael G Schwern <[EMAIL PROTECTED]> wrote:
> > Module::Build.  I prefer the descriptive local_chdir() over the very Unixy 
> > and
> > cryptic pushd().

I've been thinking about adding a feature to Path::Class that lets you
perform an action in a certain directory, and be guaranteed of being
back where you started afterwards.  Hopefully could use fchdir() to be
bulletproof.

The possible interfaces include:

 $dir->do_something( \&what_to_do );

or the DESTROY trick like yours:

 {
   my $sentinel = $dir->scoped_chdir();
   ...do your stuff...
 }

The ideal situation would be if we could hook into perl's actual
scoping mechanisms and eliminate the sentinel:

 {
   $dir->local_chdir();
   ...do your stuff...
 }

but that's probably out of my ken.

 -Ken

Reply via email to