位置: 编程技术 - 正文
perl有最好的文本数据处理能力.这是大家都知道的.在perl本身有一个别的软件没有的小功能,就是Perl格式.它相当于简单的命令行报表和图表输出.这个需要先声明格式.创建格式的文件句柄.然后由@,^,<,>,|这样的字符构成所谓的”报表”来输出图表.这样可以指定出行的外观.后面接数据项,最后用write来显示格式化的内容.
样例:输出纪录格式输出象下边一样定义:format NAME =FORMLIST.
第一部分,声明.如上.如果省略 NAME,上面的代码将定义格式输出 STDOUT。第二部分,格式行FORMLIST 由一些有序的行组成,每一行都是下面三种类型中的一种:1. 注释,以第一列为 # 来表示.2. 一个格式行,用来定义一个输出行的格式,就是指上面讲的@,^,<,>,|这样的字符3. 参数行,数据行,用来向前面的格式行中插入值,都是perl的变量第三部分, 结束 “.”来表示.
格式行(图形行)语法:格式行中每个被替换的部分分别以 @ 或者 ^ 开头。这些行不作任何形式的变量代换。@ 字段(不要同数组符号 @ 相混淆)是普通的字段。
<, >,| 字段的长度通过在格式符号 @,^ 后跟随特定长度的 <, >,| 来定义,同时<,>,| 还分别表示,左对齐,右对齐,居中对齐。如果变量超出定义的长度,那么它将被截断。
^ 字段,用来进行多行文本块填充。这样它会输出如下:first: aaasecond: bbbthird: ccc
它默认会对字符串$text进行分解,象split.当然,是以$:存的内容做分割符.#(在 @ 或 ^ 后边) 右对齐的另外一种方式,在这些符号后面指定一个数字字段。你可以在这种区域中插入一个 . 来制定小数点的位置。如果这些区域的值包含一个换行符,那么只输出换行符前面的文本。如@.##就是输出二位小数.@* 可以被用来打印多行不截断的值,也就是多行没有格式化的输出.
参数行(数据行)参数行指定参数的顺序必须跟相应的格式行的字段顺序一致。不同参数的表达式需要使用逗号分隔。参数的数据可以是标量数据,也可以是函数的返回值.参数行被处理之前所有的参数表达式都在列表环境中求值,因此单个列表表达式会产生多个列表元素。通过使用圆括弧将表达式括起来,可以使表达式扩展到多行 (因此,圆括弧必须是第一行的第一个标志)。这样就可以将值同相应的格式域对应起来方便阅读。表达式中,空白字符 n,t,和 f 总是被解释成单个空格
格式变量
$~ 中 ($FORMAT_NAME) 格式名字$^ ($FORMAT_TOP_NAME) 当前的表头格式名字存储在$% ($FORMAT_PAGE_NUMBER) 当前输出的页号$= ($FORMAT_LINES_PER_PAGE) 每页中的行数$| ($FORMAT_AUTOFLUSH) 是否自动刷新输出缓冲区存储$^L ($FORMAT_FORMFEED) 在每一页(除了第一页)表头之前需要输出的字符串存储在
注:这些变量以文件句柄为基础设定,因此你需要 select 与特定格式关联的文件句柄来影响这些格式变量
调用输出write最后直接用write函数来显示格式化的文本内容.
多页报表$% 当前输出的页面编号$= 页中的行数$- 还有多少剩下的行数
在使用输出时,最好建一个表的顶部输出.这样看起来会好看很多.
实例代码:输出如下 Page 3 Passwd File Name Login Office Uid Gid Home--------------------------------------------------------------------sshd x /var/run/sshdvde2-net x /var/run/vde2mysql x MySQL /var/lib/mysqloracle x /usr/lib/oracle/xetomcat6 x /usr/share/tomcat6
推荐整理分享perl的格式化(Format)报表输出实现代码(perl格式化输出 %s),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:perl-v,perl文件怎么执行,perl exit,perl exit,perl文件怎么执行,perl-v,perl 格式化输出,perl 格式化输出,内容如对您有帮助,希望把文章链接给更多的朋友!
用Perl操作Excel文档的实例代码 在Linux或者Unix上操作(生成)Excel,CPAN上提供了Spreadsheet::WriteExcel和Spreadsheet::ParseExcel这两个模块。下面就来看看Spreadsheet::WriteExcel和Spreadsheet::ParseExcel
perl 删除数组元素的几种方法小结 1.用grep函数函数名grep调用语法@foundlist=grep(pattern,@searchlist);解说与同名的UNIX查找工具类似,grep函数在列表中抽取与指定模式匹配的元素,参数pattern为欲
perl用grep map求交集、并集、补集的实例代码 #!/usr/bin/perl##用grepmap获取两个列表的交集并集、补集#usestrict;my@a=("a","b","c","d","e");my@b=("b","g","f","e");print"列表a数据:@an";print"列表b数据:@bn";my%a=map{$_=1}@a
标签: perl格式化输出 %s
本文链接地址:https://www.jiuchutong.com/biancheng/372455.html 转载请保留说明!友情链接: 武汉网站建设