|
|
|
|
|
|
|
[Original]
[Print]
[Top]
|
我利用Net::FTP寫了一個簡易的客戶端腳本,只實現了幾個簡單的指令,還有大部份的沒有實現,而且沒有錯誤捕獲功能,一出錯就退出來了,小弟不知道怎麼回事,而且我的ls卻列不出目錄名字,只能列出文件名,請問用什麼辦法可能解決呢?
源代碼如下
#!/usr/bin/perl
use Net::FTP;
$myftp=Net::FTP->new($ARGV[0]);
$myftp->login("ftp","ftp") or die($myftp->message);
print "host $ARGV[0] is connected.
";
print "myftp>
";
$i_v="true";
while($i_v ne "quit") {
print "myftp>";
$i_v=<STDIN>;
chomp $i_v;
# print "command is $myftp->$i_v
";
if($i_v=~ /[?|h]/) {
print "sorry,the help file is not found.
";
} else {
if($i_v=~ /download(.+)/) {
print "downloading file $1......
";
$d_file=substr($1,1);
$myftp->get("$d_file") or print "cannot download $d_file,maybe not found!
";
print "$1 download completed!
";
}
if($i_v=~ /upload(.+)/) {
print "uploading file$1to current directory.
";
$u_file=substr($1,1);
$myftp->put($u_file) or print "canot upload $u_file,maybe not found or deny access!
";
print "file $1 uploaded.
";
}
if($i_v=~ /cd(.+)/) {
$myftp->cwd("$1") or print "cannot enter directory $1,maybe not exists or deny access
";
}
if($i_v=~ /ls(.*)/) {
@files=$myftp->ls($1) or $myftp->message;
print "listing file...
";
for($arr_i=0;$arr_i<@files;$arr_i++) {
print $files[$arr_i];
print "
";
}
}
if($i_v=~ /pwd/) {
$cudir=$myftp->pwd();
print "Current direcotory is $cudir
";
}
}
}
$myftp->quit;
|
|
|
----
我是一个新手,请多指教
|
|
[Original]
[Print]
[Top]
|
|
|