【Perl】format格式化輸出
程序员文章站
2024-02-24 12:58:34
...
語法
format FORMATNAME =
fieldline
value1, value2, value3
fieldline
value1, value2, value3
.
=pod
FORMATNAME :格式化模板名称
fieldline :一个格式行,用来定义一个输出行的格式,以@或^开头
value1.. : 数据行,向前面一个格式行插入变量value
. :结束符号
格式行语法
- 以@或^开头
- @、^后的 <, >, | 长度决定了字段的长度,如果变量超出定义的长度将被截断
- < , >, | 还分别表示左对齐,右对齐,居中对齐
- ^用于多行文本填充
值域格式
@###.### 表示固定精度数字,一共8个zifu字符宽,小数点前4位,后面3位
格式变量
$~($FORMAT_NAME) :当前格式名字
$^($FORMAT_TOP_NAME) :当前表头格式
$=($FORMAT_LINES_PER_PAGE):每页中的行数
$| ($FORMAT_AUTOFLUSH) :是否自动刷新输出缓冲区存储
$%( $FORMAT_PAGE_NUMBER) :设置页码
默认format
默认format是STDOUT, 用select改变输出文件句柄,記得和write搭配使用。
example
#!/usr/bin/perl -w
format STUDENT =
==========================
@<<<<<<<<<<<<< @<<<<<<<<<<
$name, $score
==========================
.
format STUDENT_TOP =
==========================
Name Score
==========================
.
@stuName = ('hunk', 'jack', 'lucy');
@stuScore = (80, 70 , 60);
if(open(STUDENT, ">tmp")){
#select(HANDLE);
$~ = STUDENT; #指定格式名字
$^ = STUDENT_TOP;#指定表頭格式
$i = 0;
foreach (@stuName){
$name = $_;
$score = $stuScore[$i++];
write STUDENT;
}
close STUDENT;
}
result:
==========================
Name Score
==========================
==========================
hunk 80
==========================
==========================
jack 70
==========================
==========================
lucy 60
==========================
上一篇: JXL 导出EXCEL
下一篇: 使用jxl导出Excel操作