Windows 复制效果很好,而移动根本不起作用。

Windows 复制效果很好,而移动根本不起作用。,windows,perl,command-line,permissions,Windows,Perl,Command Line,Permissions,到目前为止,一切都很好。现在我把这个循环: use File::Copy; #Variable with my directory I work on $dir = "C:/projekty/perl/muzyka"; #Variables used to find all mp3 files $dir_tmp = $dir."/*.mp3"; @files = glob( $dir_tmp ); #Variable with directory I want to create and

到目前为止,一切都很好。现在我把这个循环:

use File::Copy;


#Variable with my directory I work on
$dir = "C:/projekty/perl/muzyka";

#Variables used to find all mp3 files
$dir_tmp = $dir."/*.mp3";
@files = glob( $dir_tmp );

#Variable with directory I want to create and put my files to
$new_dir = "C:/projekty/perl/muzyka/new_dir";

#Creating new directory
mkdir ( $new_dir ) or print "MKDIR PROBLEM";
或:

问题是:复制可以很好地工作,但Move不想做它的工作。它的工作有时取决于代码中的一些修改,但决不在循环中。一行代码:

foreach( @pliki )
{   
    move( $_, $new_dir) or print "MOVE PROBLEM";
}

工作完美。但是,如果我使用一些条件或循环,即使参数(目录)看起来正常,它也会停止工作(我用循环中的print函数检查了它们)。为什么它不起作用?是否存在任何可能导致错误的情况?

复制
移动
记录为设置
$错误。检查参数是否是您期望的参数也是很好的。请特别注意是否存在换行符和尾随空格

move($a, $b);

打印“移动问题:$!”
是否有助于获取更多详细信息?没有想过!老师说这个var非常有用,我忘了。上面写着“拒绝许可”。如何授予权限?
chmod
用于更改权限,
chown
用于更改用户和组所有权。它们都是命令行工具、Perl函数和系统调用。我已经更改了属性,但没有帮助。请尝试使用windows从命令行移动相同的文件。
move($a, $b);
move($_, $new_dir)
   or warn("Can't move \"$_\" to \"$new_dir\": $!\n");