gpt4 book ai didi

perl - 我使用 TT(perl 模板工具包)获得了额外的 CR

转载 作者:行者123 更新时间:2023-12-04 17:11:56 26 4
gpt4 key购买 nike

我使用 perl v5.10(在 Windows 7 上)+ TT v2.22。当我使用 TT 时,对于每个源代码行,我在生成的 html 中得到一个额外的 CR :

源文本(Windows 格式):

"Some_html" CR LF  

输出文本:
"Some_html" CR  
CR LF

但是,当我将源文件转换为 unix 格式,然后运行 ​​TT 时,我得到:
源文本(unix 格式):
"Some_html" LF   

输出文本:
"Some_html" CR LF

(我使用 notepad++ 来显示 CR 和 LF 字符;还用于更改源模板中的 unix <-> windows 格式)。

当我用谷歌搜索这个问题时,我收到了一些(很少)关于额外 ^M 的帖子在 Windows 上,但我找不到关于根本原因的解释,也不是真正的解决方案(只是一些解决方法如何摆脱额外的 ^M )。

虽然不是真正的问题,但我觉得它很“不干净”。
是否有一些我应该打开的配置(我查看了 www.template-toolkit.org/docs/manual/Config.html 但找不到任何东西)?
其他一些解决方案? (除了后修复输出文件)。
谢谢

最佳答案

Template Toolkit以二进制模式读取模板的源文件,但以文本模式写入。来自模板的数据(包含 CR LF)在文本模式下输出期间被转换,因此 LF 变为 CR LF。

该问题的最简单解决方案是以二进制模式写入文件(注意 raw 修饰符为 open 调用):

my $tt = Template->new;
my $output_file = 'some_file.txt';
open my $out_fh, '>:raw', $output_file or die "$output_file: $!\n";
$tt->process('template', \%data, $out_fh) or die $tt->error();

关于perl - 我使用 TT(perl 模板工具包)获得了额外的 CR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9123347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com