文档详情

perl编程_05 进行文件操作.PDF

发布:2017-09-01约1.5万字共11页下载文档
文本预览下载声明
下载 第5学时 进行文件操作 到现在为止,我们介绍的P e r l程序都是独立的程序。除了向用户提供消息和接收来自键盘 的输入信息外,它们无法与外界进行通信。这种状况将要改变。 P e r l是一种能够进行文件输入和输出(文件 I / O )的非常出色的语言。P e r l 的标量能够延伸, 以便将尽可能长的记录存放在文件中,另外,P e r l 的数组能够扩展,以便存放文件的全部内容, 当然这必须是在内存允许的情况下才能做到。当数据包含在 P e r l 的标量和数组中时,可以对该 数据进行不受限制的操作,并且可以编写新的文件。 当你读取数据或者将数据写入文件时, P e r l 总是尽量设法不妨碍你的操作。在某些地方, P e r l 的内置语句甚至进行了优化,以便执行常用类型的 I / O操作。 在本学时中,我们将要介绍 P e r l怎样使你能够访问文件中你可以使用的所有数据。 在本学时中,你将要学习: • 如何打开和关闭文件。 • 如果将数据写入文件。 • 如何从文件中读取数据。 • 如何使你编写的P e r l程序具备保护功能,从而使其更加强大。 5.1 打开文件 若要在P e r l 中读取文件或写文件,必须打开一个文件句柄。 P e r l 中的文件句柄实际上是另 一种类型的变量,它们可以作为在你的程序与操作系统之间对某个特定文件使用的非常方便 的一个引用(即句柄,如果你愿意这样说的话)。句柄包含了关于如何打开文件和你在文件中 读(或写)到了什么位置等信息。它们还包含了用户定义的关于如何读写文件的属性。 在前面的课程中,你已经熟悉了一个句柄,即 S T D I N。该句柄是在启动程序时P e r l 自动赋 予你的,它通常与键盘设备相连接(后面还要更加详细地介绍 S T D I N )。文件句柄名字的格式 与第2学时介绍的变量名基本相同,不同之处是句柄的名字前面没有类型标识符( $、@ )。由 于这个原因,句柄名字最好使用大写字母,这样就不会与 P e r l 的当前和将来的保留字f o r e a c h 、 e l s e和i f等发生冲突。 也可以将字符串标量或能够返回字符串的任何东西(如函数)用作文件 句柄名。这种类型的句柄名称为间接句柄。描述它们的用法会给 P e r l 的初学 者造成一些混乱。关于间接句柄的详细说明,请参见 p e r l f u n c 手册页中关于 o p e n 的在线文档。 每当需要访问磁盘上的文件时,必须创建一个新的文件句柄,并且打开该文件句柄,进 行相应的准备。当然必须使用 o p e n 函数来打开文件句柄。O p e n 的句法如下: open (filehandle, pathname) o p e n 函数将文件句柄作为它的第一个参数,将路径名作为第二个参数。路径名用于指明 54使用第一部分 Perl 基础 下载 要打开哪个文件,因此,如果没有设定完整的路径名,比如 c : / w i n d o w s / s y s t e m / ,那么o p e n 函 数将设法打开当前目录中的文件。如果 o p e n 函数运行成功,它将返回一个非 0值。如果o p e n函 数运行失败,它返回u n d e f (假): 在上面这个代码段中,如果 o p e n运行成功,它计算得出的值是真,而 i f代码块则用打开的 文件句柄M Y F I L E来运行。否则,文件不能打开,代码的 e l s e部分开始运行,这表示出现了错 误。在许多P e r l程序中,这个“打开或失败”语句是使用 d i e 函数来编写的。d i e 函数用于停止 P e r l程序的执行,并且输出下面这个出错消息: 在这个消息中, s c r i p t n a m e是P e r l程序的名字,x x x 是遇到d i e 的行号。d i e和o p e n这两个函 数常常以下面的形式同时出现: 这一行代码可以读作“打开或撤消”,它有时表示你想要让程序如何处理没有打开的文件。 如果o p e n运行没有成功,也就是说它返回 FA L S E ,
显示全部
相似文档