NAME

Filesys::Tree - Return contents of directories in a tree-like format

IMPORTANT NOTE

This is only version 0.01 . There is a small bug which I'm aware of, but my brain is no longer in condition of taking care of me, and my stomach is begging me to go out and eat something, which I will :-)

I plan to take care of that bug as soon as possible. It, meanwhile, you wish to do that and send me a patch, you're welcome O:-)

SYNOPSIS

use Filesys::Tree qw/tree/;

my $tree = tree('/path/to/directory');

$tree now holds something like:

{
  a => {
         type     => 'd',
         contents => {
                       1 => {
                              type     => 'f',
                            },
       },
}

In this example, there is one directory named "a", which has a file named "1".

And you can also do:

use Filesys::Tree qw/tree/;

my $tree = tree( {'max-depth' => 2} , '/path/to/directory');

See OPTIONS for a full list of options.

FUNCTIONS

tree

This is currently the only function in the module. It returns a tree-like representation of a directory (or a set of directories, if you ask real hard).

OPTIONS

all

All files (by default, files beginning with a dot are not returned). Default value is 0.

Get a tree including all files:

my $tree = tree( { all => 1 } , 'path/to/directory/' );

max-depth

Sets the max-depth for recursion. A negative number means there is no max-depth. Default value is -1.

Get a tree with a max depth of 2:

my $tree = tree( { 'max-depth' => 2 , 'path/to/directory/' );

directories-only

Do not list files. Default value is 0.

my $tree = tree( { 'directories-only' => 1 } , 'path/to/directory/' );

full

Full path for each entry. Default value is 0.

Get a tree with full paths and prefixes:

my $tree = tree( { 'full' => 1 } , 'path/to/directory' );

Follows links. Default value is 0.

Get a tree by following links:

my $tree = tree( { 'follow-links' => 1 } , 'path/to/directory/' );

pattern

Only return filename matching pattern.

Get a tree where only files in all lowercase characters are included:

my $tree = tree( { 'pattern' => qr/^[a-z]+$/ } , 'path/to/directory/');

exclude-pattern

Exclude files matching the pattern.

Get a tree excluding files with numeric names:

my $tree = tree( { 'exclude-pattern' => qr/^\d+$/ } , 'path/to/directory/');

AUTHOR

Jose Castro, <cog@cpan.org>

BUGS

Please report any bugs or feature requests to bug-filesys-tree@rt.cpan.org, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

COPYRIGHT & LICENSE

Copyright 2005 Jose Castro, All Rights Reserved.

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