Perl & LWP:如果我不指定目录,getstore() 只会保存文件
Perl & LWP: getstore() will only save a file if I don't specify a directory
我可能遗漏了一些简单的东西,但我有 getstore() 运行 完美地将“.png”文件保存到我的 Windows PC 中,如下所示:
getstore("$url","$filename");
这很有用,可以完美地将文件下载到包含 Perl 脚本的目录中。但是,如果我尝试将其保存到 "newdir" 的子文件夹中,则不会下载任何内容:
getstore("$url","newdir\$filename");
知道我哪里出错了或者我该如何调试吗?我尝试打印目录,它看起来不错:
print "newdir\$filename";
然而,脚本运行后 "newdir" 中什么也没有。提前致谢。
使用 open(my $fh, ">", $arg)
打开文件,其中 $arg
包含您传递的值。因此,它肯定会接受相对路径。
>dir /b newdir
>perl -MLWP::Simple=getstore -e"getstore('http://whosebug.com/', 'newdir\so.html')"
>dir /b newdir
so.html
可能 $filename
无效(例如以换行符结尾)。可能当前目录不是您认为的那样(它可以是包含脚本的目录以外的目录)。也许执行脚本的用户无权访问该目录。您应该能够通过以下方式获得更多信息:
use LWP::UserAgent qw( );
my $ua = LWP::UserAgent->new();
my $request = HTTP::Request->new(GET => $url);
my $response = $ua->request($request, "newdir\$filename");
die($response->status_line)
if !$response->is_success;
我可能遗漏了一些简单的东西,但我有 getstore() 运行 完美地将“.png”文件保存到我的 Windows PC 中,如下所示:
getstore("$url","$filename");
这很有用,可以完美地将文件下载到包含 Perl 脚本的目录中。但是,如果我尝试将其保存到 "newdir" 的子文件夹中,则不会下载任何内容:
getstore("$url","newdir\$filename");
知道我哪里出错了或者我该如何调试吗?我尝试打印目录,它看起来不错:
print "newdir\$filename";
然而,脚本运行后 "newdir" 中什么也没有。提前致谢。
使用 open(my $fh, ">", $arg)
打开文件,其中 $arg
包含您传递的值。因此,它肯定会接受相对路径。
>dir /b newdir
>perl -MLWP::Simple=getstore -e"getstore('http://whosebug.com/', 'newdir\so.html')"
>dir /b newdir
so.html
可能 $filename
无效(例如以换行符结尾)。可能当前目录不是您认为的那样(它可以是包含脚本的目录以外的目录)。也许执行脚本的用户无权访问该目录。您应该能够通过以下方式获得更多信息:
use LWP::UserAgent qw( );
my $ua = LWP::UserAgent->new();
my $request = HTTP::Request->new(GET => $url);
my $response = $ua->request($request, "newdir\$filename");
die($response->status_line)
if !$response->is_success;