windows - 为什么我在使用 Perl 下载的网页中出现额外的换行符?

标签 windows perl newline line-breaks carriage-return

我正在编写一个简单的 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 ,但现在这困扰着我。我如何摆脱那些额外的换行符?!

最佳答案

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

关于windows - 为什么我在使用 Perl 下载的网页中出现额外的换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3934065/

相关文章:

perl - 无需正则表达式的简单搜索和替换

windows - 如何在批处理文件中回显换行符?

javascript - 在javascript中,通过输入指定的换行符不会在警报中创建换行符

python - Twisted:目录中新文件的事件

windows - 如何使用 Windows 完成 psql?

windows - 如何让我的安装程序将 Visual Studio 2013 (VC120) 运行时部署到 Windows XP?

c++ - 如何获取PC模型类型?

perl - 为什么 Perl 中的 base64 字符串比较会失败?

linux - 在 CentOS 6.6 上更新 Perl 版本

python - wxPython 网格中的自动换行和换行