Vrukesh has asked for the wisdom of the Perl Monks concerning the following question:

I have to change the directory structure of my source code files to another directory structure. For example, if the source files are in folder "C:\Base\folder1" and "C:\Base\folder2" , I should be able to change it to "C:\Base\folder3\folder4" and "C:\Base\folder4" resepctively using the perl script. The contents of folders are to be copied to new destination as well.

Replies are listed 'Best First'.
Re: Directory Tree
by bgreenlee (Friar) on Aug 18, 2004 at 08:03 UTC

    From your description, I don't see why you need to do this in Perl. What's wrong with just renaming the folders?

    On the other hand, if your source code references those directories and you need to do a global search-and-replace, you can do that with a one-liner:

    perl -pi -0777 -e 's/c:\\base\\folder1/c:\\base\folder3\folder4/gis' *

    You should probably back things up before you do this (you can also have perl create backups using the -i flag above, but then you have to go delete all those .bak files). Also, that will just change all the files in one directory. In unix, you could combine this with the find command to do it recursively. I'm not sure of the easiest way to do this in Windows.

    -b

      To add to my query, I need to copy the source files from one directory strucure many times. So, I thought to get a generic perl script, which I will run everytime, instead of manually copy-pasting. P.S. I am working on Windows machine.

        A quick look through CPAN shows a few modules that could do the trick, including File::Repl and File::Xcopy. You could also do the quick and dirty thing and just do a system call to xcopy.

        -b

        So what code have you written and are having problems with?

        /J\

Re: Directory Tree
by jbodoni (Monk) on Aug 18, 2004 at 13:54 UTC
    No offense intended to my fellow Monks, but why invoke Perl for this problem? In this case, the simplest thing that could possibly work would be a simple batch file!

    John

Re: Directory Tree
by Anonymous Monk on Aug 18, 2004 at 07:50 UTC
    good for you, I hope it works.