Skip to content

Syaltut/File-cd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

File::cd - Easily and safely change directory

VERSION

version 0.003

SYNOPSIS

use 5.010;
use File::cd;
use Cwd qw(cwd);

cd '/tmp' => sub {
    # output: /tmp
    say cwd;

  # do something in /tmp
  process_directory();

    # we can also nest multiple cds
    cd '/home/foo' => sub { ... };
};

# back at original directory
say cwd;

DESCRIPTION

The global (and negative) effect of perl builtin function chdir is well known (see File::chdir's documentation for more details). And few modules have been created to solve this problem:

Unfortunately, I'm not a big fan of their interface. So this modules provides yet another way to change directory in perl.

FUNCTIONS

Exports the function cd by default.

cd($dir, $code)

Change directory to $dir, invoke the function reference $code inside that directory, and go back to original directory.

The return value of this function is the value of the last expression in $code. Here's an example to utilize it:

# get a list of files contained in directory /home/example
use File::Spec qw(catfile);

my $destination = '/home/example';

my @files = cd $destination => sub {
    map { catfile $destination, $_ } glob '*'
}

# make sure to match the context!
my $files = cd $destination => sub {
    [ map { catfile $destination, $_ } glob '*' ]
}

Throws an exception when the directory $dir does not exist or is not a directory.

NOTE: This function is prototyped, which means the validity of supplied arguments are checked at compile time.

AUTHOR

Ahmad Syaltut

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Ahmad Syaltut.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

About

Easily and safely change directory

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages