亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5012 | 回復(fù): 12
打印 上一主題 下一主題

perl使用Net::FTP模塊的問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-02-08 18:28 |只看該作者 |倒序?yàn)g覽
    使用這個模塊時老是提示“Can't use an undefined value as a symbol reference at C:/Perl/lib/Net/FTP/dataconn.pm line 54.”登錄的服務(wù)器時windows sever 2003系統(tǒng),請問該怎么解決?

代碼如下:
use Net::FTP;

$ftp = Net::FTP->new
(
"www.trcio.com",
Timeout => 60
) or die "Could not connect.\n";


$username = "read";
$password = "read";

$ftp->login($username,$password) or die "Could not login.\n";

$ftp->cwd('/g');

$remotefile = "use_warnings.txt";
$localfile = "use_wa.txt";

$ftp->get($remotefile,$localfile) or die "Could not put localfilelocalfile\n";

$ftp->quit;
  
哪位大俠幫忙解決下。!任務(wù)所需!!感激感激。

論壇徽章:
0
2 [報告]
發(fā)表于 2012-02-09 10:36 |只看該作者
515572768 發(fā)表于 2012-02-08 18:28
使用這個模塊時老是提示“Can't use an undefined value as a symbol reference at C:/Perl/lib/Net/FT ...



你在腳本里加上use warnings和use strict就明了。

論壇徽章:
0
3 [報告]
發(fā)表于 2012-02-09 10:48 |只看該作者
回復(fù) 2# zuerrong

用了 use warnings,但輸出的錯誤信息還是上面那句“Can't use an undefined value as a symbol reference at C:/Perl/lib/Net/FTP/dataconn.pm line 54.”,為什么?同時可以確定是put那句出錯的

C:/Perl/lib/Net/FTP/dataconn.pm的部分代碼如下:

sub _close {                                                           #48行
  my $data = shift;                                                  #49行
  my $ftp  = ${*$data}{'net_ftp_cmd'};                    #50行
                                                                              #51行
  $data->SUPER::close();                                             #52行
                                                                                #53行
  delete ${*$ftp}{'net_ftp_dataconn'}                         #54行
    if exists ${*$ftp}{'net_ftp_dataconn'}                     #55行
    && $data == ${*$ftp}{'net_ftp_dataconn'};             #56行
}

論壇徽章:
0
4 [報告]
發(fā)表于 2012-02-09 10:49 |只看該作者
回復(fù) 2# zuerrong


    說錯了,可以確定是get那句出錯的(未用put)

論壇徽章:
0
5 [報告]
發(fā)表于 2012-02-11 18:28 |只看該作者
測試樓主的代碼,沒有任何問題哦

論壇徽章:
0
6 [報告]
發(fā)表于 2012-02-13 10:15 |只看該作者
回復(fù) 5# bxg-1982


    不可能吧?我的怎么老是提示

論壇徽章:
0
7 [報告]
發(fā)表于 2012-02-13 10:39 |只看該作者
“Can't use an undefined value as a symbol reference at C:/Perl/lib/Net/FTP/dataconn.pm line 54.

sub _close {                                                           #48行
  my $data = shift;                                                  #49行
  my $ftp  = ${*$data}{'net_ftp_cmd'};                    #50行
                                                                              #51行
  $data->SUPER::close();                                             #52行
                                                                                #53行
  delete ${*$ftp}{'net_ftp_dataconn'}                         #54行
    if exists ${*$ftp}{'net_ftp_dataconn'}                     #55行
    && $data == ${*$ftp}{'net_ftp_dataconn'};             #56行
}
不能將一個未定義的值當(dāng)做符號引用,
也就是說delete ${*$ftp}{'net_ftp_dataconn'}這句話中,${*$ftp}是未定義的,然后第50行中$ftp的由來是${*$data}{'net_ftp_cmd'}

==
寫到這里我忽然發(fā)現(xiàn),  delete ${*$ftp}{'net_ftp_dataconn'} if exists ${*$ftp}{'net_ftp_dataconn'} && $data == ${*$ftp}{'net_ftp_dataconn'}; 應(yīng)該是一行才對,你最好先確認(rèn)一下你行數(shù)的數(shù)法是不是對的

論壇徽章:
0
8 [報告]
發(fā)表于 2012-02-13 13:44 |只看該作者
回復(fù) 7# liu.cy_cu


    sub _close {                                                                                       #48行
  my $data = shift;                                                                                 #49行
  my $ftp  = ${*$data}{'net_ftp_cmd'};                                                  #50行
                                                                              #51行
  $data->SUPER::close();                                                                        #52行
                                                                                #53行
  delete ${*$ftp}{'net_ftp_dataconn'}if exists ${*$ftp}{'net_ftp_dataconn'}&& $data == ${*$ftp}{'net_ftp_dataconn'};             #54行
}
是這樣的,大俠,你看下為什么老是提示那個信息

論壇徽章:
0
9 [報告]
發(fā)表于 2012-02-16 12:33 |只看該作者
說一下大概的猜想,
出錯的部分有可能是因?yàn)镕TP命令沒有正確執(zhí)行,鏈接已經(jīng)銷毀,所以傳到 _close方法被賦到$data的那個實(shí)例的net_ftp_cmd已經(jīng)沒有了,所以$ftp就是未定義的值,所以在
if exists ${*$ftp}{'net_ftp_dataconn'}時,會報錯。

請先確認(rèn)你在運(yùn)行perl的機(jī)器上測試連接你的FTP服務(wù)器是否OK

論壇徽章:
0
10 [報告]
發(fā)表于 2012-02-16 15:15 |只看該作者
回復(fù) 9# liu.cy_cu


    請問Net::FTP模塊連接服務(wù)器時是采用的被動連接還是主動連接?在我的計算機(jī)上面采用被動方式可以登錄ftp.cpan.org服務(wù)器,但無法登錄我們www.trcio.com服務(wù)器,同時,無論采用被動登陸還是主動登錄服務(wù)器使用Net::FTP模塊操作ftp.cpan.org服務(wù)器時都能成功,不會出現(xiàn)提示錯誤;但操作我們的服務(wù)器都會出現(xiàn)提示錯誤,如果使用put上傳文檔的話,可以在我們服務(wù)器上面生成相應(yīng)文檔,但文檔里面內(nèi)容為空,該怎么辦?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP