我可能错过了一些简单的东西,但我已经完美地运行了getstore()以将“.png”文件保存到我的Windows PC中,如下所示:
getstore("$url","$filename");
这样可以完美地将文件下载到包含Perl脚本的目录中。但是,如果我尝试将其保存到“newdir”的子文件夹中,则无需下载:
getstore("$url","newdir\\$filename");
我知道我在哪里出错或者我如何调试?我尝试打印目录,看起来不错:
print "newdir\\$filename";
然而,一旦脚本运行,“newdir”中就没有任何内容。提前谢谢。
答案 0 :(得分:1)
使用open(my $fh, ">", $arg)
打开文件,其中$arg
包含您传递的值。因此,它绝对会接受相对路径。
>dir /b newdir
>perl -MLWP::Simple=getstore -e"getstore('http://stackoverflow.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;