Perl 格式

Perl 有一个机制,我们可以使用它生成报告。使用此功能,我们可以在输出屏幕或文件中打印时完全按照我们想要的方式生成报告。可以使用 Perl 中提供的 printfsprintf 函数编写简单格式。

printf "%05d\n", 30;

这将包括在 30 前面填充零,使得总数位数为 5,同样可以用于 sprintf

sprintf "%05d\n", 30; # This will print the same as printf.

使用 printfsprintf,我们可以获得大多数 Perl 格式。但就报告而言,有些难以实施。

报告示例:

======================================================
名称		地址		年龄	电话
======================================================
Tom		Beijing		24 	123456
Nicky	Shanghai	27	456789

以上是我们需要在 Perl 中以相同方式打印的示例报告。这可以通过使用 perl printfperl sprintf 来实现。它可以使用格式有效地来实现。

格式可以用以下方式声明。

format FORMATNAME=FORMATLIST.

在这里,我们将使用特定的方法写入将数据打印到输出屏幕或文件中。

符号 说明
@ 用于表示字段持有者的开头
> 右对齐文字
< 左对齐文本
| 中心对齐
# 如果有多个 # 提供的数字。如果单个 #support 则假设为注释
. 小数点
^ 字段持有者的开始也可以用于多行,也可以用于自动换行
~ 如果变量为空,则行应为空
@* 多行
($name,$addr,$age,$phone)=("krishna","chennai","24","929309242"); 

write;

($name,$addr,$age,$phone)=("shruthi","chennai","24","929309232"); 

write; 

format STDOUT_TOP= 

=============================================================== 

NAME ADDRESS AGE PHONE 

===============================================================

 . 

format STDOUT= 

@<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<< @<<< @<<<<<<<<<< 

$name, $addr, $age, $phone 

.

我们执行代码以查看输出。

我们使用 @ 符号来指定字段持有者或字符串的开头,< 每个字符。

我们使用 STDOUT 在标准输出上打印。我们可以将其更改为用于将数据写入文件的文件处理程序。

open(REPORT,">test.txt"); 

($name,$addr,$age,$phone)=("krishna","chennai","24","929309232"); 

write REPORT; 

($name,$addr,$age,$phone)=("shruthi","chennai","24","929309232"); 

write REPORT; 

format REPORT_TOP= 

=============================================================== 

NAME ADDRESS AGE PHONE 

===============================================================

 . 

format REPORT= 

@<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<< @<<< @<<<<<<<<<< 

$name, $addr, $age, $phone

我们可以将 < 替换为 >| 更改文字的对齐方式。STDOUT_TOP 用于设计格式的头信息。我们也可以使用与文件处理程序相同的 FH_TOPFH 是文件处理程序)。这会将格式输出到我们正在工作中的文件。