如何在 Perl 中使用格式?


为了在 Perl 脚本中调用格式声明,我们将使用 write 关键字 −

write EMPLOYEE;

问题在于格式名称通常是一个打开的文件处理程序的名称,而 write 语句将把输出发送到这个文件处理程序。由于我们希望将数据发送到 STDOUT,因此我们必须将 EMPLOYEE 与 STDOUT 文件处理程序关联起来。然而,首先我们必须使用 select() 函数确保 STDOUT 是我们选定的文件处理程序。

select(STDOUT);

然后,我们可以通过使用特殊变量 $~ 或 $FORMAT_NAME 将新格式名称与 STDOUT 关联,如下所示 −

$~ = "EMPLOYEE";

当我们现在执行 write() 时,数据将被发送到 STDOUT。请记住:如果您要将报告写入 STDOUT 以外的任何其他文件处理程序,则可以使用 select() 函数选择该文件处理程序,其余逻辑将保持不变。

示例

我们来看下面的例子。这里我们硬编码了一些值只是为了展示用法。在实际使用中,您将从文件或数据库中读取值来生成实际报告,您可能需要将最终报告再次写入文件。

 动态演示

#!/usr/bin/perl

format EMPLOYEE =
===================================
@<<<<<<<<<<<<<<<<<<<<<< @<<
$name $age
@#####.##
$salary
===================================
.

select(STDOUT);
$~ = EMPLOYEE;

@n = ("Ali", "Raza", "Jaffer");
@a = (20,30, 40);
@s = (2000.00, 2500.00, 4000.000);

$i = 0;
foreach (@n) {
   $name = $_;
   $age = $a[$i];
   $salary = $s[$i++];
   write;
}

输出

执行后,这将产生以下结果 −

===================================
Ali                20
2000.00
===================================
===================================
Raza              30
2500.00
===================================
===================================
Jaffer            40
4000.00
===================================

更新时间: 2019-11-29

163 次浏览

开启你的 职业生涯

完成本课程并获得认证

开始学习
广告