gpt4 book ai didi

perl - 来自Perl Net::FTP的错误原因

转载 作者:行者123 更新时间:2023-12-03 07:46:12 24 4
gpt4 key购买 nike

我正在使用Net::FTP将文件传输到大型机,并且正在测试故障情况。

我的代码基本上遵循以下几行:

    my $ftp = Net::FTP->new ("mainframe.com", Timeout => 20);
if (! $ftp) {
logMessage ("Could not connect to host: $!");
return;
}

if (! $ftp->login ("paxdiablo", "demigodemporeroftheuniverse")) {
logMessage ("Could not log in to host: $!");
$ftp->quit ();
return;
}

if (! $ftp->put ("myfile.txt", "'CANT.WRITE.TO.THIS'")) {
logMessage ("Could not put file: $!");
$ftp->quit ();
return;
}

我知道我无法创建数据集 CANT.WRITE.TO.THIS,因为我没有所需的权限,但是当我尝试尝试时,看到的唯一消息是:
Could not put file:
$!中没有表明问题所在。我查看了 Net::FTP doco,它的意思是:

put ( LOCAL_FILE [, REMOTE_FILE ] )

Put a file on the remote server. LOCAL_FILE may be a name or a filehandle. If LOCAL_FILE is a filehandle then REMOTE_FILE must be specified. If REMOTE_FILE is not specified then the file will be stored in the current directory with the same leafname as LOCAL_FILE.

Returns REMOTE_FILE or the generated remote filename if REMOTE_FILE is not given.



我也找不到有关检索特定错误的任何信息(例如 $ftp->getLastError()或类似内容)。

如何向用户指示传输失败的原因?

在较早的迭代中,我求助于放置文件,然后再次获取它并在本地检查内容。我真的不想再对人施加这种笨拙的代码。

最佳答案

Net::FTP:

$ftp = Net::FTP->new("some.host.name", Debug => 0)
or die "Cannot connect to some.host.name: $@"


注意 $@

$ftp->cwd("/pub")
or die "Cannot change working directory ", $ftp->message;


注意 $ftp->message

关于perl - 来自Perl Net::FTP的错误原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9029398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com