第九章 打印及格式化输出.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用select函数改变默认文件句柄时,它返回当前默认文件句柄的内部表示,这样就可以创建子程序,按自己的想法输出,又不影响程序的其它部份,如下面的程序段: sub write_to_stdout{ local{$savefile,$saveformat}; $savefile=select(STDOUT); $saveformat=$~; $~=“MYFORMAT”; write; $~=$saveformat; select($savefile); } 在输出到打印机时,可以每页顶部输出相应的信息,这些特殊文本称为页眉。定义页眉实际上就是定义名为filename_TOP的打印格式,如: format STDOUT_TOP= consolidated widgets inc.1004 Annual Report 对word熟悉的同学应该知道,页眉中常见的一个值就是当前的页码,在perl里,它是存在系统变量$%中的。 如: format STDOUT_TOP= page @ $% . 也可以通过改变系统$^改变定义页眉的打印格式名,与$~一样,$^只对当前默认文件起作用,可以和select函数结合使用。 默认情况下,每页长度为60行,但可以通过对$=的改变来改变页长 如: $==66; 意思是页长($=)为66页。 9.2.6 处理长字符串 在使用format语句时,每行数据都设置为特定长度,这样可以使所有的数据行和列对齐,如果要处理长信息,就要在格式行中使用^ ~或@* 值域@*虽然可以输出多行文本,但它只是将字符原样输出,不加以格式化。 在perl中对长字符串(包含换行)进行格式化的值域定义很简单,只需把打头的@换成^即可。这种文本格式化中,perl解释器在一行中将放置尽可能多的单词。 每当输出一行文本,被输出的子串就从变量中删除,再次在值域中使用该变量就把剩下的字符串继续按格式输出。当内容全部输出完后,这个变量就成了空串,就会输出一个空行,有时为了避免输出空行,可以在值域格式行首加一个~字符。 例9.3 #!/usr/bin/perl $quotation=STDIN; chop($quotation); $~=QUOTATION; write; format QUOTATION= Quotation_for_theday: ~^ $quotation ~^ $quotation ~^ $quotation ~^ $quotation ~^ $quotation . 第九章 打印与格式化输出 9.1 使用print函数 使用print函数可以将原始的末格式化的文本存入到文件,如果打印到屏幕以及帮助调试脚本,它的标准语法如下: Print FILEHANDLE list; 它的作用是将list中的数据打印到FILEHANDLE为文件句柄的文件中,还可以省略部份参数,写为如下的形式: Print FILEHANDLE; 表示将perl5内置变量$内容打印到FILEHANDLE Print list表示将数据打印到默认的文件句柄. Print:将内置变量$打印到默认的文件句柄 9.1.1设置默认文件句柄 Print函数一般使用默认文件句柄STDOUT,在perl5启动时,会自动打开文件句柄STDOUT. 它的初始设置是计算机的显示器,可以在程序中自定义STDOUT的设置,但一般采用select函数来改革者变默认的文件句柄,而不用改变STDOUT的设置. 语法如下: select (FILEHANDLE); 默认文件句柄是全局变量,所以在使用结束后,要注意使它恢复到原先的值,这可以通过使用动态作用域来实现,也可以让子程序在使用全局变量时不会给其它程序带来影响。 9.1.2 使用heredoc操作符 heredoc操作符,即表示here文档,用于打印输出当前的文件句柄,一般情况下,默认的文件句柄是STDOUT,它的语法如下: Print heredoc –maker; 在后可以标明一个结束字符串,后面用此字符串来结束引号引起的文本,从当前行一直到结束字符串再次出现的中间所有行都同属于这一个字符串。 结束字符串可以是一个标识符或者某些引号括起来的文本。 如果结束字符串用引号括起,所使用的引号的类型决定对整个字符串的处理,和正则表达式一样,一个末加引号的标识符和用双引号括起来是一样的。 但在和标识符中间不能有空格,如果有的话,会被认为是空标志符。 而结束字符串必须单独一行出现,不加引号且周围没有空格。 如: Print “eof”; Print ‘eof’; 都是可行的,这里语句中的分号不能省略。 9.2格式化输出 用write函数和打印格式可以得到格式化输出,write函数的语法和print函数的语法类似,如下: Writ

文档评论(0)

0520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档