为什么我在使用Perl下载的网页中获得额外的换行符?

Bra*_*ery 3 windows perl newline line-breaks carriage-return

我正在编写一个简单的Perl脚本(在Windows上)将get请求的响应下载到文件的url.非常直截了当.除非写入输出文件,否则会获得额外的换行符.所以喜欢而不是:

<head>
  <title>title</title>
  <link .../>
</head>
Run Code Online (Sandbox Code Playgroud)

我明白了

<head>

  <title>title</title>

  <link .../>

</head>
Run Code Online (Sandbox Code Playgroud)

这是Perl脚本:

use LWP::Simple;

my $url = $ARGV[0];
my $content = get($url);

open(outputFile, '+>', $ARGV[1]);

print outputFile $content;

close(outputFile);
Run Code Online (Sandbox Code Playgroud)

我想我可以获得Windows的wget,但现在这让我感到困扰.如何摆脱那些额外的换行符?!

hob*_*bbs 12

  1. >+您的示例代码中的模式没有合理的理由.只是说.
  2. LWP::Simple有一个getstore方法.如果您正在使用LWP::Simple,为什么不使用它?
  3. 默认情况下,开放是要推动:crlf在Win32,果然运行时,I/O层\n到\r\n.但是你所写的数据已经存在\r\n,所以你最终会得到太多的换行符.如果您希望逐字写入数据,则应使用binmode或打开句柄:raw以开始.LWP已经正确地做到了这一点.