Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

does not move-- move ($file,"$kat/$folder_name/")

by tannx (Acolyte)
on Jan 15, 2008 at 13:36 UTC ( #662462=perlquestion: print w/replies, xml ) Need Help??

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

I have slight problem with my script. It does everything I need, except at the end of script it needs to move files into created directory -move ($file,"$kat/$folder_name/")- It gives: Cannot move "file_to_be_moved" No such file or directory But the file and needed directory is there.
#!/usr/bin/perl use warnings; use strict; use POSIX qw(strftime); use File::Copy; my $output_tag = strftime(".%Y%m%d%H%M", localtime); my $failid='/home/rdd/script/konf.aa'; my $kpv = strftime(".%Y%m%d", localtime); my $kat='/home/rdd/archive/rwa'.$kpv; my (@files, $file, $folder_name); if (open(FAILIDcnt, $failid)) { while(my $input = <FAILIDcnt>) { chomp($input); my $output = $input; $output =~ s/\.txt//; $output .= $output_tag; open(IF, '/home/rdd/'.$input) or next; open(OF,'> /var/www/html/rwa_test/input/'.$output) + or die "Can't open $output: $!"; open(OF,'> /home/rdd/archive/copy/'.$output) or die "Can't open $output: $!"; while(my $line = <IF>) { last if $line =~ /^-{19}/; $line =~ s/,/./g; $line =~ s/\t/;/g; print OF "$line"; } close(OF); close(IF); system ("gzip /home/rdd/archive/copy/* "); if (!-e $kat) { mkdir $kat; } else { if (!-d $kat) { die "$kat already exists and is not a folder"; } } opendir(DIR, "/home/rdd/archive/copy/") or die "Can't Open Current Directory: $!"; @files = grep ~ m/^S.\w{2}/, readdir(DIR); close DIR; foreach $file(@files){ if($file =~ m/^S.(\w{2})/){ $folder_name = $1; mkdir ("$kat/$folder_name"); move ($file,"$kat/$folder_name/") or warn "Cannot move $file $!\n"; } } } close (FAILIDcnt); }
Br Tann

Replies are listed 'Best First'.
Re: does not move-- move ($file,"$kat/$folder_name/")
by almut (Canon) on Jan 15, 2008 at 14:05 UTC

    Maybe your current directory isn't set to where $file resides? (opendir doesn't automagically chdir...). It's probably easiest to just prepend the directory to the source path for move.

      To the OP: What he's saying is you should use
      move "/home/rdd/archive/copy/$file", ...
      instead — $file contains just the bare filename.
        You are absolutely right. Problem solved. Thx Tann

        What she's saying...  (otherwise I agree :)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://662462]
Approved by Velaki
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (7)
As of 2020-12-03 01:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How often do you use taint mode?





    Results (49 votes). Check out past polls.

    Notices?