• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
Perl教学
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
Perl教学 第十篇 格式化输出之三
软件发布 Perl教学 第十篇 格式化输出之三
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 编程技术 >> CGI教程 >> Perl教学 第十篇 格式化输出之三

Perl教学 第十篇 格式化输出之三

添加时间: 2006-5-8 4:17:26  作者: CGI教程  阅读次数:56   来源: http://d9soft.com

        2、格式和局域变量
在上例中,你可能已经注意到子程序write_letter调用write输出字母及其出现次数,即使格式定义在子程序外部仍能正常工作。在第17行中将字母及其出现次数传递给该子程序,在子程序中,打印格式使用局域变量$letter和$value,这样保证了在foreach循环中每次输出当前的字母和值。
然而要注意的是,使用my定义的局域变量要求格式定义在子程序内部,否则就不会输出,因此,用write输出的局域变量一定要用local定义。(local和my详见《子程序》一章)
注:Perl4中没有my函数,故不会有此问题。
3、选择值域格式
我们已经知道了打印格式和write函数怎么工作,现在来看看值域的格式,见下表:

格式 值域含义
@<<< 左对齐输出
@>>> 右对齐输出
@ 中对齐输出
@##.## 固定精度数字
@* 多行文本

每个值域的第一个字符是行填充符,当使用@字符时,不做文本格式化。对文本的格式化稍后来讲。
在上表中,除了多行值域@*,域宽都等于其指定的包含字符@在内的字符个数,例如:
@###.##
表示七个字符宽,小数点前四个,小数点后两个。
4、输出值域字符
在打印格式里,特定字符如@、<和>被看作值域定义,那么如何将它们输出呢?方法如下:

format SPECIAL =
This line contains the special character @.
"@"
.
四、输出到其它文件
缺省地,函数write将结果输出到标准输出文件STDOUT,我们也可以使它将结果输出到任意其它的文件中。最简单的方法就是把文件变量作为参数传递给write,如:
write (MYFILE);
这样,write就用缺省的名为MYFILE的打印格式输出到文件MYFILE中,但是这样就不能用$~变量来改变所使用的打印格式。系统变量$~只对缺省文件变量起作用,我们可以改变缺省文件变量,改变$~,再调用write,例如:
select (MYFILE);
$~ = "MYFORMAT";
write;
当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. 1994 Annual Report
.
在页眉的定义中也可以包含值域,页眉中经常使用的一个特殊值是当前页码,存贮在系统变量$%中,如:
format STDOUT_TOP =
Page @<<.
$%
.
我们也可以通过改变系统变量$^改变定义页眉的打印格式名,与$~一样,$^只对当前缺省文件起作用,因此可以与select函数结合使用。
缺省情况下,每页长度为60行,可以通过改变$=来改变页长,如:
$= = 66; #页长设为66行
此赋值语句必须出现在第一个write语句前。
注:一般使用分页机制时不用print函数,因为当用write输出时,Perl解释器跟踪每页的当前行号。如果必须使用print而又不打乱页计数,可以调整系统变量$-。$-的含义是当前行到页末之间的行数,当$-达到零时,就开始新的一页,调整方法如:
print ("Here is a line of output\n");
$- -= 1;

 

上下文章:

 

上一篇文章: Perl教学 第十篇 格式化输出之四 下一篇文章: Perl教学 第十篇 格式化输出之二

相关文章:

  • 熊猫对于太阳井老2输出的一点思考
  • 基于Sendmail和Perl的邮件附件过滤系统(二)
  • 基于Sendmail和Perl的邮件附件过滤系统(一)
  • OracleSQL内置函数大全之三
  • 解读DHCP故障,提升网络运行效率之三

相关软件:

  • 超级图库(SuperLib) V3.1.27 单机版
  • Perl Studio V2.0
  • 九方中文输入法辅助教学系统XP
  • 多媒体教学系统 4.0 惊喜版
  • 多媒体教学系统 3.8
  • 超级网管(SuperLANadmin) - 破解补丁 v5_1

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • CGI教程(1)
  • CGI教程(2)
  • CGI教程(3)
  • CGI教程(4)
  • CGI教程(5)
  • CGI教程(6)
  • CGI教程(7)
  • CGI教程(8)
  • CGI教程(9)
  • CGI教学:第一章 cgilib例

CGI教程阅读排行

  • CGI教程(1)
  • PERL 的 CGI 文件及目录操作
  • CGI教程(2)
  • CGI教程(3)
  • 文件加锁方法——通用锁函数
  • perl实例分析教程之一
  • CGI教程(4)
  • CGI教程(5)
  • CGI教学:第一章 cgilib例
  • CGI教程(7)

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • 第二章 PowerBuilder 入门之创建新...
  • VC++之List Box/Check List Box控...
  • 第一章 什么是PowerBuilder
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有