现在的位置: 首页 > 综合 > 正文

perl学习笔记八—-格式化输出

2013年04月20日 ⁄ 综合 ⁄ 共 1072字 ⁄ 字号 评论关闭
 格式化输出
在一个perl中可以有多个format。
一 打印的基本步骤
1、将系统变量$~设成所要使用的格式
      2、调用函数write
     函数write将结果输出到标准输出文件STDOUT,我们也可以使它将结果
 输出到任意其它的文件中。最简单的方法就是把文件变量作为参数传递给write
     例如 write (MYFILE);
也可以通过如下方式
     例如 select(MYFILE)
      $~ = "MYFORMAT";
      write;

二 输出变量
如果在子程序中调用需要注意局部变量的作用域。另外输出的格式有
如下几种:
@<<<  左对齐输出 
@>>>  右对齐输出 
@|||  中对齐输出 
@##.##     固定精度数字    
@*  多行文本 
每行的长度就是< > |的个数。
针对转义字符@<>作为平常字符输出的时候采用“”方式。

格式的声明如下:
format WRITELETTER =
**********************************
@: @<<<<<<
$a,$b
**********************************
.

三 带附加讯息的格式化输出
3.1 分页输出
设置页眉
format STDOUT_TOP =
     Consolidated Widgets Inc. 1994 Annual Report
     .
设置页的行数,默认是60
$= = 66
此赋值语句必须出现在第一个write语句前。

3.2 格式化字串的长度
在Perl中对长字符串(包含换行)进行格式化的值域定义很简单,只需把
打头的@字符换成^就行了,这种文本格式化中,Perl解释器在一行中放置尽可能多
的单词。每当输出一行文本,被输出的子串就从变量中删除,再次在域值中使用该
变量就把剩下的字符串继续按格式输出。当内容已输出完毕,该变量就成了空串,
再输出就会输出空行,为避免输出空行,可以在值域格式行首加一个~字符。
很明显,当字符串长度不明确时,这种用法很不方便,原因就在于它指明
了输出的行数上限,超过这一上限的字符就不会被输出,解决方法很简单,就是在
域值格式行首加两个~字符,这样就会持续按格式输出文本直到输出完毕。   
例如 format MYFORMAT =
===================================
Here is the text I want to display.
~~ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$quotation
 

抱歉!评论已关闭.