我正在编写一个简单的 Perl 脚本(在 Windows 上)来将获取请求的响应下载到文件的 url。非常简单。除了写入输出文件时,我得到额外的换行符。所以喜欢而不是:
<head>
<title>title</title>
<link .../>
</head>
我明白了
<head>
<title>title</title>
<link .../>
</head>
这是 Perl 脚本:
use LWP::Simple;
my $url = $ARGV[0];
my $content = get($url);
open(outputFile, '+>', $ARGV[1]);
print outputFile $content;
close(outputFile);
我想我可以得到 wget for Windows ,但现在这困扰着我。我如何摆脱那些额外的换行符?!
最佳答案
- 示例代码中的
>+
模式没有合理的理由。只是说。 LWP::Simple
有一个getstore
方法。如果您正在使用LWP::Simple
,为什么不使用它呢?- 默认情况下,open在win32上运行时会压入
:crlf
I/O层,将\n
变为\r\n
。但是您正在写入的数据已经有\r\n
,所以您最终会得到太多的换行符。如果你想逐字写入数据,你应该使用binmode
,或者用:raw
打开句柄。 LWP 已经正确地做到了这一点。
关于windows - 为什么我在使用 Perl 下载的网页中出现额外的换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3934065/