如何使用Perl将txt文件转换为html
答
你的问题很模糊,所以很难得到很多帮助。这可能会指出你在正确的方向。
这里基本上有三项任务。
- 将您的报告解析为数据结构。
- 使用您的数据结构来生成HTML文档。
- 通过电子邮件发送HTML文档。
我不能真正帮助第1步,因为我对您的报告一无所知。如果您有CSV格式的文件,那么Text:CSV将对您有用。值得指出的是,如果您生成此报告,那么您可以使用更容易解析的格式生成它 - 例如JSON。
对于第2步,我推荐一个模板引擎。我会使用Template Toolkit,但其他选项可用。这个想法是,你创建一个模板文件,其中包含你想要你的可变数据去的“标签”的所有HTML。从简单的层面,可能是这个样子:
<html>
<head><title>Some Title</title></head>
<body>
<h1>Some Title</h1>
<p>Blah...</p>
<table>
[% FOREACH row IN data -%]
<tr><td>[% row.value %]</td><td>[% row.another_value %]</td></tr>
[% END -%]
<table>
</body>
</html>
假设是在一个名为email.tt
文件,你有你的数据在哈希称为@data
的数组,然后你会处理这样的模板:
use Template;
@data = ({
value => 'something',
another_value => 'something else',
}, {
value => 'something',
another_value => 'something else',
});
my $tt = Template->new;
$tt->process('email.tt', { data => \@data }, \$email_body)
or die $tt->error;
这会给你扩展的HTML在$email_body
。然后,我们进入第3步。
我建议使用Email::Stuffer发送电子邮件。
use Email::Stuffer;
Email::Stuffer->from ('[email protected]')
->to ('[email protected]')
->html_body($email_body)
->send;
你的'报告'是怎么样的?可以用表格形式描述的东西?请编辑您的问题,并提供更多信息。 – iMan
您是否尝试将txt文件转换为html或只想发送带有文本文件附件的html电子邮件? – AbhiNickz
你需要分开你的问题,现在还不清楚。你需要1)使用Perl将文本转换为HTML 2)使用Perl将文件发送到电子邮件?那是对的吗? –