【Perl】format格式化輸出

語法


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
==========================


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值