Directory-Scratch-Structured
view release on metacpan or search on metacpan
lib/Directory/Scratch/Structured.pm view on Meta::CPAN
sub _create_structured_tree
{
=head2 _create_structured_tree
Used internally by both interfaces
=cut
my ($temporary_directory, $directory, $path) = @_ ;
while( my ($entry_name, $contents) = each %{$directory})
{
for($contents)
{
'ARRAY' eq ref $_ and do
{
my $file = $temporary_directory->touch("$path/$entry_name", @{$contents}) ;
last ;
} ;
'HASH' eq ref $_ and do
{
$temporary_directory->mkdir("$path/$entry_name");
_create_structured_tree($temporary_directory, $contents, "$path/$entry_name") ;
last ;
} ;
croak "invalid element '$path/$entry_name' in tree structure\n" ;
}
}
return(1) ;
}
#-------------------------------------------------------------------------------
sub piggyback
{
=head2 piggyback
Used internally to piggyback L<Directory::Scratch>.
=cut
Sub::Install::install_sub({
code => \&directory_scratch_create_structured_tree,
into => 'Directory::Scratch',
as => 'create_structured_tree',
});
return('Directory::Scratch::create_structured_tree') ;
}
#-------------------------------------------------------------------------------
1 ;
=head1 BUGS AND LIMITATIONS
None so far.
=head1 AUTHOR
Khemir Nadim ibn Hamouda
CPAN ID: NKH
mailto:nadim@khemir.net
=head1 LICENSE AND COPYRIGHT
This program is free software; you can redistribute
it and/or modify it under the same terms as Perl itself.
=head1 SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Directory::Scratch::Structured
You can also look for information at:
=over 4
=item * AnnoCPAN: Annotated CPAN documentation
L<http://annocpan.org/dist/Directory-Scratch-Structured>
=item * 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.
=item * Search CPAN
L<http://search.cpan.org/dist/Directory-Scratch-Structured>
=back
=head1 SEE ALSO
L<Directory::Scratch>
=cut
( run in 0.901 second using v1.01-cache-2.11-cpan-39bf76dae61 )