格式化输出是Perl一大特点,毕竟擅长于文本数据处理。
format模板
Perl支持用format关键字来定义格式化输出的模板,然后使用write按指定模板输出数据。基本语法如下:
format FORMATNAME =
fieldline
value1, value2, value3
fieldline
value1, value2, value3
.
=pod
FORMATNAME:格式化模板名称
fieldline:一个格式行,用来定义一个输出行的格式,以@或^开头
value1..:数据行,向前面一个格式行插入变量value
.:结束符号
=cut
格式行语法
- 以@或^开头
- @、^后的<,>,|长度决定了字段的长度,如果变量超出定义的长度将被截断
- <, >, |还分别表示左对齐,右对齐,居中对齐
- ^用于多行文本填充
值域格式
@###.### 表示固定精度数字,一共8个zifu字符宽,小数点前4位,后面3位
格式变量
$~($FORMAT_NAME) :当前格式名字
$^($FORMAT_TOP_NAME):当前表头格式
$=($FORMAT_LINES_PER_PAGE):每页中的行数
$| ($FORMAT_AUTOFLUSH) :是否自动刷新输出缓冲区存储
$%( $FORMAT_PAGE_NUMBER):设置页码
默认format
默认format是STDOUT。
1 #!/usr/bin/perl -w
2 write;
[root@izuf682lz6444cynn96up0z ~]# ./formatOutput1.pl
Undefined format "STDOUT" called at ./formatOutput1.pl line 2.
Demo
1 #!/usr/bin/perl -w
2 format STUDENT =
3 ===================================
4 @<<<<<<<<<<<<< @<<<<<<<<<<