0

我正在使用 Perl/CGI、MySQL、Perl 模板工具包。

我有一个数据库设置和一些 perl 模块来查询数据库。

从 perl 模块中,我将数据结构(哈希散列)传递给 perl 模板工具包(.tt),然后将结果呈现在网页上。

我现在想添加一个选项,将搜索结果下载到制表符分隔的文件中;即提供下载文件选项。我的 perl 模块中有一个子例程来转换为制表符分隔格式。我希望能够调用该子例程将搜索结果转换为制表符分隔格式。我可以从模板工具包中的 perl 模块调用子例程吗?

我试图弄清楚如何在不再次查询数据库或不将结果存储在 CACHE 中的情况下生成可下载文件。

有没有办法将 Perl 模板正在呈现的数据结构(哈希散列)传递给可以生成可下载文件的 Javascript(进一步调用子例程)?

请提出正确的方法。

谢谢你的时间

4

1 回答 1

3

我可以从模板工具包中的 perl 模块调用子例程吗?

你可以,但是对于这个问题没有意义。

您不需要任何模板功能,并且确实需要不同的 Content-Type 标头。在创建制表符分隔文件时不要使用 TT。

我试图弄清楚如何在不再次查询数据库或不将结果存储在 CACHE 中的情况下生成可下载文件。

没有合理的方法可以做到这一点。您可以得到的最接近的方法是使用 JavaScript(不使用您编写的 Perl 来生成制表符分隔文件)从生成的(通过 TT)HTML 文档中解析数据,然后在客户端上构建制表符分隔文件,然后使其可供下载

再次访问数据库会更简单、更容易、更可靠。

于 2012-06-07T07:08:49.870 回答