我有一个文件,我只想复制并移动到其父目录。到目前为止我已经
了foreach my $file (@DIR) {
$file =~ s:.*/([^/]+):$1:;
my $testfile = '';
copy ($file, $testfile);
move ($testfile, "../*");
$file = $testfile;
}
答案 0 :(得分:2)
您的$testfile
不能是空字符串。你可以使用copy;你不需要move
。
use warnings;
use strict;
use File::Copy qw(copy);
my $file = 'foo.txt';
my $testfile = "../$file.copy";
copy($file, $testfile);
我不清楚为什么你使用替换,但看起来你应该使用
File::Basename basename
。
更新:现在我想我知道你想要什么。这会将文件/tmp/z/foo.txt
复制到上面的目录:/tmp/foo.txt
:
use warnings;
use strict;
use File::Copy qw(copy);
use File::Basename qw(basename dirname);
my $file = '/tmp/z/foo.txt';
my $dir = dirname(dirname($file));
my $testfile = "$dir/" . basename($file);
copy($file, $testfile);
答案 1 :(得分:0)
您可以在perl中使用系统调用,因此您可以执行以下操作:
system("cp file ../");
示例和信息的一些链接:
http://perlmaven.com/running-external-programs-from-perl http://www.geom.uiuc.edu/~scheftic/PMC/UseScripts/Perl/system.html