in reply to Re: recursive dir and file
in thread recursive dir and file

Problem is Im running this script on the Unix server and I don't have permission to install any modules. This is the only way I can think of.... Any other solution?

Replies are listed 'Best First'.
Re^3: recursive dir and file
by xdg (Monsignor) on Nov 11, 2005 at 17:29 UTC

    File::Find is a core module going back to Perl 5.0. If you're running any version of Perl 5, then you have it.

    -xdg

    Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

Re^3: recursive dir and file
by superfrink (Curate) on Nov 12, 2005 at 00:24 UTC
    I really like File::Finder for doing things like this.

    As for not being able to install modules you can usually install the module source in your own directory. To install File::Finder you could do the following.

    Create a directory named File in the same directory as your script is in.

    Download the Finder.pm file from the CPAN link above. (There is a link named "Source" near the top of the page that explains the module.) Save this file in the File directory

    At this point you should have a file tree something like:
    /home/work/myscript.pl /home/work/File/Finder.pm

    Now when you run your script it should look in the current directory for the modules in addition to the system directories.
Re^3: recursive dir and file
by graff (Chancellor) on Nov 12, 2005 at 23:51 UTC
    If you're doing this on a unix machine, you don't need perl at all. While File::Find is part of the Perl "core", it is noticeably slower than the unix-native "find" utility. All you need is a unix command line like this:
    find /cdw/home_dir/s006258/CSPAM -name '*.sas' -print0 | xargs -0 chmo +d 644
    Note the single-quotes around the '*.sas', to keep the asterisk from being "interpreted" by the shell.

    Perl is great, but for little things like this, the shell can be better.