如何在 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 ===================================
广告