我使用TT(perl模板工具包)获得额外的CR
发布时间:2020-12-15 21:47:48 所属栏目:大数据 来源:网络整理
导读:我使用perl v5.10(在 Windows 7上)TT v2.22.当我使用TT时,对于每个源代码行,我在生成的html中获得了额外的CR: 源文本(Windows格式): "Some_html" CR LF 输出文字: "Some_html" CR CR LF 但是,当我将源文件转换为unix格式,然后运行TT时,我得到: 源文本(un
我使用perl v5.10(在
Windows 7上)TT v2.22.当我使用TT时,对于每个源代码行,我在生成的html中获得了额外的CR:
源文本(Windows格式): "Some_html" CR LF 输出文字: "Some_html" CR CR LF 但是,当我将源文件转换为unix格式,然后运行TT时,我得到: "Some_html" LF 输出文字: "Some_html" CR LF (我使用记事本来显示CR& LF字符;也可以在源模板中更改unix< - >窗口格式). 当我解决这个问题时,我在Windows上得到了一些关于额外^ M的帖子,但我找不到关于根本原因的解释也没有真正的解决方案(只是一些解决方法如何摆脱额外的^ M). 虽然不是一个真正的问题,但我发现它非常“不洁净”. 解决方法
Template Toolkit以二进制模式读取模板的源文件,但以文本模式写入.来自模板的数据(包含CR LF)在文本模式的输出期间被转换,因此LF变为CR LF.
解决此问题的最简单方法是以二进制模式写入文件(请注意原始修饰符以打开调用): 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(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |