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");