为了在Perl脚本中调用格式声明,我们将使用write关键字-
write EMPLOYEE;
问题在于格式名称通常是打开的文件句柄的名称,而write语句会将输出发送到该文件句柄。由于我们希望将数据发送到STDOUT,因此必须将EMPLOYEE与STDOUT文件句柄相关联。但是,首先,我们必须使用select()
函数确保STDOUT是我们选择的文件句柄。
select(STDOUT);
然后,通过使用特殊变量$〜或$FORMAT_NAME设置新格式名称和STDOUT,将EMPLOYEE与STDOUT关联起来,如下所示-
$~ = "EMPLOYEE";
现在执行a时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 ===================================