`
suli
  • 浏览: 45426 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

学习Perl的 10 个简单课程 -第三课

阅读更多

原文地址: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命令在打开成功时返回真,反之返回假。可以使用引值测试操作成功与否。例如,下面的代码以可写方式打开文件,并在失败时返回“Insufficientprivileges”。

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");
@lines = <CLIENTS>;
close(CLIENTS);
print @lines;

 二、通过文件柄进行循环

使用while语句进行循环($line = ),例如clients文件中有许多行,将当前行分配给$line:

open (CLIENTS, "clients.txt");
while ($line = <CLIENTS> ) {
print $line;
}
close (CLIENTS);

可见,使用Perl处理文件非常方便。下一课将学习如何搜索文件中的特定元素以及如何处理字符串。

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    strawberry-perl-5.32.1.1-64bit.msi

    windows环境的perl安装包,不用去官网下载了,测试好用。 strawberry-perl-5.32.1.1-64bit.msi离线安装包(官方),可避免从官网下载速度慢的问题。 windows环境的perl安装包,不用去官网下载了,测试好用。 ...

    strawberry-perl-5.32.1.1-32bit.msi

    windows环境的perl安装包,不用去官网下载了,测试好用。 strawberry-perl-5.32.1.1-32bit.msi离线安装包(官方),可避免从官网下载速度慢的问题。 windows环境的perl安装包,不用去官网下载了,测试好用。 ...

    strawberry-perl-5.32.1.1-64bit

    3. **C编译器和相关工具**:Strawberry Perl附带了一个完整的MinGW GCC编译器套件,使得用户可以直接在Windows上编译和使用C语言编写的Perl模块。 4. **CPAN客户端**:CPAN(Comprehensive Perl Archive Network)...

    perl-Data-Dumper-2.145-3.el7.x86_64.rpm

    RHEL 7.1安装MySQL 5.6的依赖包:perl-Data-Dumper-2.145-3.el7.x86_64.rpm ------------------------------------------------------------------------------------

    strawberry-perl-5.32.1.1-64bit perl 解释器

    3. c:这个目录可能包含了与C语言相关的文件,因为Perl可以与C语言进行混合编程,提供更底层的控制和性能提升。 4. cpan:CPAN(Comprehensive Perl Archive Network)是Perl的一个重要资源库,包含了数万种Perl模块...

    strawberry-perl-5.38.0.1-64bit-portable.zip

    综上所述,"strawberry-perl-5.38.0.1-64bit-portable.zip"是一个全面的Perl开发环境,适合那些希望在Windows上快速启动Perl开发而无需复杂安装过程的用户。通过其提供的工具和模块,用户可以轻松地进行文本处理、...

    strawberry-perl-5.32.1.1-64bit.7z

    标题中的"strawberry-perl-5.32.1.1-64bit.7z"表明我们正在讨论的是一个64位版本的Strawberry Perl 5.32.1.1软件的压缩包文件,该文件采用7-Zip格式进行压缩。Strawberry Perl是一个针对Windows平台的Perl解释器的...

    centos7 perl rpm依赖包

    装mysql时提示少perl,安装perl需要依赖包。已包含下面所有包, 版本号匹配。 [Linux]centOS7下RPM安装Perl 下载rpm依赖包,依照顺序安装. perl-parent-0.225-244.el7.noarch perl-...

    strawberry-perl-5.32.0.1-64bit.msi

    Strawberry Perl包含了C编译器和许多常用的Perl模块,方便开发者编写和运行CPAN(Comprehensive Perl Archive Network)上的第三方模块。 描述中提到的“解决官网下载速度过慢的问题”,意味着可能用户在尝试从Perl...

    perl-MailTools-1.53-1.noarch.rpm

    perl-MailTools-1.53-1.noarch.rpm

    strawberry-perl-5.32.1.1-32bit.zip

    3. perl:这是一个关键目录,很可能包含了Perl解释器本身以及其他Perl运行时所需的库和模块。 4. c:这个目录可能包含了Perl的C语言接口相关的文件,可能包括Perl的源代码或者用于扩展Perl功能的C语言模块。 5. ...

    strawberry-perl-5.32.1.1-64bit.msi和openssl-1.1.1-stable-SNAP-202

    Perl是一种强大的解释型、交互式、面向对象的脚本编程语言,广泛应用于系统管理、网络编程、文本处理、Web开发等多个领域。标题提到的"strawberry-perl-5.32.1.1-64bit.msi"是Windows平台上的Strawberry Perl发行版...

    linux 离线安装perl-IPC-Cmd

    10. `perl-ExtUtils-Install-1.58-299.el7_9.noarch.rpm`: 是Perl模块安装工具,负责将编译好的模块放入正确的位置。 为了离线安装`perl-IPC-Cmd`,你需要先确保你的系统满足所有依赖条件,即上述的RPM包都已安装。...

    perl-DBI-1.52-2.el5.i386.rpm

    perl-DBI-1.52-2.el5.i386.rpm

    perl-HTTP-Server-Simple

    Perl-HTTP-Server-Simple是Perl编程语言中的一个轻量级Web服务器模块,它使得在Perl环境中快速搭建本地HTTP服务器变得简单易行。这个扩展包主要用于开发和测试用途,允许开发者在无需复杂配置的情况下,快速启动一个...

    strawberry-perl-5.38.2.2-64bit.msi

    strawberry-perl-5.38.2.2-64bit.msi

    perl-DBD-MySQL-4.013-3.el6.x86_64.rpm

    perl-DBD-MySQL-4.013-3.el6.x86_64.rpm

    perl-Text-Iconv-1.7-2.el5.i386

    perl-Text-Iconv-1.7-2.el5.i386

Global site tag (gtag.js) - Google Analytics