NAME¶
Directory::Scratch::Structured - creates temporary files and directories from a structured description
SYNOPSIS¶
my %tree_structure =
(
dir_1 =>
{
subdir_1 =>{},
file_1 =>[],
file_a => [],
},
dir_2 =>
{
subdir_2 =>
{
file_22 =>[],
file_2a =>[],
},
file_2 =>[],
file_a =>['12345'],
file_b =>[],
},
file_0 => [] ,
) ;
use Directory::Scratch::Structured qw(create_structured_tree) ;
my $temporary_directory = create_structured_tree(%tree_structure) ;
or
use Directory::Scratch ;
use Directory::Scratch::Structured qw(piggyback_directory_scratch) ;
my $temporary_directory = Directory::Scratch->new;
$temporary_directory->create_structured_tree(%tree_structure) ;
DESCRIPTION¶
This module adds a
create_structured_tree subroutine to the
Directory::Scratch.
DOCUMENTATION¶
I needed a subroutine to create a bunch of temporary directories and files while
running tests. I used the excellent Directory::Scratch to implement such a
functionality. I proposed the subroutine to the Directory::Scratch author but
he preferred to implement a subroutine using an unstructured input data based
on the fact that Directory::Scratch didn't use structured data. This is, IMHO,
flawed design, though it may require slightly less typing.
I proposed a hybrid solution to reduce the amount of subroutines and integrate
the subroutine using structured input into Directory::Scratch but we didn't
reach an agreement on the API. Instead I decided that I would piggyback on
Directory::Scratch.
You can access
create_structured_tree through a subroutine or a method
through a Directory::Scratch object.
Whichever interface you choose, the argument to the
create_structured_tree consists of tuples (hash entries). The key
represents the name of the object to create in the directory.
If the value is of type:
- ARRAY
- A file will be created, it's contents are the contents of
the array (See Directory::Scratch)
- HASH
- A directory will be created. the element of the hash will
also be , recursively, created
- OTHER
- The subroutine will croak.
SUBROUTINES/METHODS¶
create_structured_tree¶
use Directory::Scratch::Structured qw(create_structured_tree) ;
my $temporary_directory = create_structured_tree(%tree_structure) ;
my $base = $temporary_directory->base() ;
Returns a default Directory::Scratch object.
directory_scratch_create_structured_tree¶
Adds
create_structured_tree to Directory::Scratch when you Load
Directory::Scratch::Structured with the
piggyback_directory_scratch option.
use Directory::Scratch ;
use Directory::Scratch::Structured qw(piggyback_directory_scratch) ;
my $temporary_directory = Directory::Scratch->new;
$temporary_directory->create_structured_tree(%tree_structure) ;
_create_structured_tree¶
Used internally by both interfaces
piggyback¶
Used internally to piggyback Directory::Scratch.
BUGS AND LIMITATIONS¶
None so far.
AUTHOR¶
Khemir Nadim ibn Hamouda
CPAN ID: NKH
mailto:nadim@khemir.net
LICENSE AND COPYRIGHT¶
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
SUPPORT¶
You can find documentation for this module with the perldoc command.
perldoc Directory::Scratch::Structured
You can also look for information at:
- •
- AnnoCPAN: Annotated CPAN documentation
<http://annocpan.org/dist/Directory-Scratch-Structured>
- •
- RT: CPAN's request tracker
Please report any bugs or feature requests to L
<bug-directory-scratch-structured@rt.cpan.org>.
We will be notified, and then you'll automatically be notified of progress
on your bug as we make changes.
- •
- Search CPAN
<http://search.cpan.org/dist/Directory-Scratch-Structured>
SEE ALSO¶
Directory::Scratch