学习Perl的 10 个简单课程 -第三课
时间:2008-05-29 来源:suli2921
原文地址:http://www.linuxforums.org/programming/learn_perl_in_10_easy_lessons__lesson_3.html
文件处理
Perl语言旨在让文件处理变更简单、高效。
打开和关闭文件
用“open”命令打开文件,它需要两个参数:文件柄和文件自己的名称。文件柄是一个变量,它是在脚本内处理文件的表示。例如,下面的代码将打开“clients.txt”文件,其文件柄是CLIENTS:
- open (CLIENTS, "clients.txt");
open (CLIENTS, "clients.txt");
默认情况下,文件以只读模式打开。也可以以可写模式打开文件。如果文件已经存在或已经写入数据,则数据将丢失。以可写模式打开文件只需要在文件名前加“>”符号:
- open (CLIENTS, ">clients.txt");
open (CLIENTS, ">clients.txt");
如果希望保留文件中的数据,则可以以追加模式打开文件。这样,文件原来的数据得以保留,而您写入的数据将追加到文件中。具体方法是在文件名前加“>>”符号:
- open (CLIENTS, ">>clients.txt");
open (CLIENTS, ">>clients.txt");
open命令在打开成功时返回真,反之返回假。可以使用引值测试操作成功与否。例如,下面的代码以可写方式打开文件,并在失败时返回“Insufficientprivileges”。
- open (CLIENTS, ">clients.txt") or print "Insufficientprivileges\n";
open (CLIENTS, ">clients.txt") or print "Insufficientprivileges\n";
切记处理完文件时一定要关闭文件,不闭关文件,则更改将会丢失。要关闭文件,只需在文件柄上使用“close”命令。
close (CLIENTS);
向文件写入数据
下面的代码将“Mr John Doe”写入到“clients.txt”文件的结尾:
- open (CLIENTS, ">>clients.txt") or die "Insufficientprivileges\n";
- print CLIENTS "Mr John Doe\n";
- close (CLIENTS);
open (CLIENTS, ">>clients.txt") or die "Insufficientprivileges\n"; print CLIENTS "Mr John Doe\n"; close (CLIENTS);
从文件读取数据
有许多方法可以从文件读取数据,下面是两种最常用的方法。
一、将文件内容复制到数组中
可以将文件的所有内容复制到数组中。每一行对应数组中的一个元素,如:
open(CLIENTS, "clients.txt"); |
open(CLIENTS, "clients.txt"); @lines = <CLIENTS>; close(CLIENTS); print @lines;
二、通过文件柄进行循环
使用while语句进行循环($line = ),例如clients文件中有许多行,将当前行分配给$line:
open (CLIENTS, "clients.txt"); |
open (CLIENTS, "clients.txt"); while ($line = <CLIENTS> ) { print $line; } close (CLIENTS);
可见,使用Perl处理文件非常方便。下一课将学习如何搜索文件中的特定元素以及如何处理字符串。