我使用perl将gif发送到服务器。我想将一些名为“降水”和其他GIF的文件夹移动到名为wind的文件夹中。现在使用下面的代码(好吧,它是我使用的代码的一部分)我发送它们,但代码中有一些错误,因为我发现所有gif在同一个文件夹中,在第一个,沉淀。任何的想法?
use BSD::Resource;
use File::Copy;
use Net::FTP;
#ACCIONS send gif to the folder precipitation
$ftp->cwd("html/pen/precipitation");
foreach my $file ($ftp->ls("Pl*.gif")){
$ftp->delete($file) or die "Error in delete\n";
}
my @arxius = glob("/home/gif/Pen/Pl*.gif");
foreach my $File(@arxius){
$ftp->binary();
$ftp->put("$File");
}
#ACCIONS send gif to the folder wind
$ftp->cwd("html/pen/wind");
foreach my $file2 ($ftp->ls("vent*.gif")){
$ftp->delete($file2) or die "Error in delete\n";
}
my @arxius2 = glob("/home/gif/Pen/vent*.gif");
foreach my $File(@arxius2){
$ftp->binary();
$ftp->put("$File");
}
答案 0 :(得分:2)
该行为表明对cwd()
的第二次调用失败。
这很可能是因为您使用的是相对而非绝对路径:第二个cwd()
调用是相对于第一个中设置的位置。它会尝试转到html/pen/precipitation/html/pen/wind
,而这似乎不是您想要的。
在第二次../wind
来电中使用绝对路径或cwd()
。
此外,您应该检查cwd()
命令是否成功,如果您没有更改到预期目录,请停止。否则,您在错误的位置执行可能具有破坏性的操作(如删除文件)!cwd()
如果有效则返回true,否则返回false。请参阅Net::FTP
documentation。