我想在$main_rpt_csv_fh
下面的示例Perl代码中定义要与给定文件句柄一起使用的格式。
所以,我相信我的格式声明会像这样开始:
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代码整洁,并且在子例程中创建格式的想法会有所帮助。
format
语句应该在fh声明之前或之后以及open
之前发生吗?
最后一个问题。格式是处理我想要的最佳方式,也就是像旧的“绿条”报告一样创建类似于spreadhseet(格式化)的数据?如果不是,首选方式是什么?
答案 0 :(得分:3)
格式是全球性的。因此,有一些关于将它们从语言中删除的争论。
答案 1 :(得分:3)
最后一个问题。格式是处理我想要的最佳方式吗 这就是创建类似于spreadhseet的(格式化)数据 旧的“绿栏”报告?如果不是,首选方式是什么?
来自Perl::Critic::Policy::Miscellanea::ProhibitFormats:
格式是Perl最古老的功能之一。不幸的是,他们 受到一些限制。格式是静态的,不可能 在运行时很容易定义。此外,格式取决于几个模糊 全局变量。
对于更现代的报告工具,请考虑使用其中一个模板 像Template这样的框架或者尝试Perl6 :: Form模块。