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

Dear monks

I am doing a simple program to copy certain files into another directory.

Input files:

050904jv.abs.htm

050904jv_master.txt.htm

050904jv.txt.htm

I am creating a newfolder structure with certain conditions and copying all the files into that folder except master file.

I want to move master file in the final_files folder.

When i run my coding its copying all the files into the folder structure but the master file is not moving to the final_files folder.

I dont know where i am going wrong, i have tried in many ways but i could not able to find the bug. Here i am posting that part of the code

use strict; use File::Copy; opendir (DIR, "$ARGV[0]") || die ("cannot open the directory"); my $file = $ARGV[0]; my @dir = readdir (DIR); my @files; chdir($ARGV[0]); my $input = <STDIN>; chop($input); my $dir; my $k; foreach $dir (@dir) { if ($dir =~ /^(\d{2})\d+([a-z]{2})(.*?)\.htm$/i) { mkdir ($1); mkdir ("$1\/Final_Files"); $k=$input.$1.$3; rename ($dir, $k); move ($k, "$1\/Final_Files\/$k") if ($dir !~ /master/gsi); move ($k, "$1\/Final_Files") if ($dir =~ /master/gsi); } }

Please tell where i am going wrong.

Thanks in advance

Prasad

Replies are listed 'Best First'.
Re: Moving files into another folder
by sh1tn (Priest) on Feb 18, 2005 at 14:46 UTC

      I tried File::NCopy, the files are not copied to that final_files using the above coding.

      Prasad

        I hope this scratch helps:
        use strict; use File::NCopy qw(copy); my $dir = shift; my $new = 'destination'; -d $dir or die $!; -d $new or mkdir $new; my @files = grep { -f } glob "$dir/*"; copy $_, $new for @files


set permissions
by boboson (Monk) on Feb 18, 2005 at 14:58 UTC
    I did the same thing a while ago using File::Copy as suggested above. Just a hint, I had to set the permissions on my directories so it aloud me to move files.