NAME File::chmod::Recursive - Run chmod recursively against directories DESCRIPTION Like [File::chmod][], but recursive with selective permissions SYNOPSIS use File::chmod::Recursive; # Exports 'chmod_recursive' by default # Apply identical permissions to everything # Similar to chmod -R chmod_recursive( 0755, '/path/to/directory' ); # Apply permissions selectively chmod_recursive( { dirs => 0755, # Mode for directories files => 0644, # Mode for files # Match both directories and files match => { qr/\.sh|\.pl/ => 0755, qr/\.gnupg/ => 0600, }, # You can also match files or directories selectively match_dirs => { qr/\/logs\// => 0775, }, match_files => { qr/\/bin\/\S+$/ => 0755, }, }, '/path/to/directory' ); FUNCTIONS - chmod_recursive(MODE, $path) - chmod_recursive(\%options, $path) This function accepts two parameters. The first is either a _MODE_ or an _options hashref_. The second is the directory to work on. It returns the number of files successfully changed, similar to [chmod][]. When using a _hashref_ for selective permissions, the following options are valid - { dirs => MODE, # Default Mode for directories files => MODE, # Default Mode for files # Match both directories and files match => { qr// => MODE, }, # Match files only match_files => { qr// => MODE, }, # Match directories only match_dirs => { qr// => MODE, }, # Follow symlinks. OFF by default follow_symlinks => 0, # Depth first tree walking. ON by default (default _find_ behavior) depth_first => 1, } In all cases the _MODE_ is whatever [File::chmod][] accepts. - rchmod - chmodr This is an alias for chmod_recursive and is exported only on request. BUGS AND LIMITATIONS Please report any bugs or feature requests at https://github.com/mithun/perl-file-chmod-recursive/issues. SEE ALSO - [File::chmod][] - [chmod][] - [Perl Monks thread on recursive perl chmod][] AUTHOR Mithun Ayachit LICENCE AND COPYRIGHT Copyright (c) 2015, Mithun Ayachit . All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See [perlartistic][]. [File::chmod]: https://metacpan.org/pod/File::chmod [chmod]: http://perldoc.perl.org/functions/chmod.html [Perl Monks thread on recursive perl chmod]: http://www.perlmonks.org/?node_id=61745 [perlartistic]: https://metacpan.org/pod/perlartistic