3

我想在下面的示例 Perl 代码中定义与给定文件句柄一起使用的格式$main_rpt_csv_fh

所以,我相信我的格式声明会这样开始:

format main_rpt_csv_fh =

如果我尝试在子例程中创建它,使用 file_handle 的名称创建格式是否永久地将格式链接到文件句柄,或者文件句柄和格式是否必须在同一范围内?

这是我到目前为止编写的代码。

my $main_rpt_path = "/home/ics/work/rpts/interim/mtr_prebill.rpt";

my $main_rpt_fh = undef;


open $main_rpt_fh, "> ", 
   $main_rpt_path or die "$main_rpt_path: $!";

问这个问题的目的是,我想让我的主要 Perl 代码保持整洁,在子例程中创建格式的想法会有所帮助。

例如,该语句应该在formatfh 声明之前还是之后以及在 之前open

最后一个问题。格式是处理我想要的最佳方式,即像旧的“绿条”报告一样创建类似电子表格(格式化)的数据?如果没有,首选的方法是什么?

4

2 回答 2

3

格式是全球性的。因此,关于从语言中删除它们存在一些争论。

于 2013-08-10T14:07:52.280 回答
3

最后一个问题。格式是处理我想要的最佳方式,即像旧的“绿条”报告一样创建类似电子表格(格式化)的数据?如果没有,首选的方法是什么?

来自Perl::Critic::Policy::Miscellanea::ProhibitFormats

格式是 Perl 最古老的特性之一。不幸的是,它们受到一些限制。格式是静态的,不能在运行时轻松定义。此外,格式依赖于几个晦涩的全局变量。

对于更现代的报告工具,请考虑使用模板框架之一,或尝试使用 Perl6::Form 模块。

于 2013-08-10T14:51:55.150 回答