商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > perl读写文件代码实例

perl读写文件代码实例

  发布于2026-06-29 阅读(0)

扫一扫,手机访问

#mode operand create truncate
#read <
#write > yes yes
#append >> yes

perl读写文件代码实例

在Perl中处理文件读写,几乎是每个开发者都会频繁接触的任务。但别看操作简单,细节里却藏着不少坑。这里整理三个最常见的场景,从异常处理到批量读取,覆盖了日常工作中大部分需求。直接看代码,比空谈要实在得多。

场景一:如果打不开文件,直接抛出异常
这是最干脆的做法——文件不存在或无法打开,脚本立刻终止,并给出明确错误信息。适合那些“拿不到数据就无需继续”的场景,比如配置文件缺失、关键输入文件被删除。

复制代码 代码如下:
use strict;
use warnings;

my $filename = 'data.txt';
open(my $fh, '<:encoding(UTF-8)', $filename)
or die "Could not open file '$filename' with the error $!";

while (my $row = <$fh>) {
chomp $row;
print "$row\n";
}
close($fh);

注意这里用到了die,一旦失败脚本直接停止,同时打印出文件名和系统错误信息($!),能帮你快速定位问题。编码指定为UTF-8,也是处理现代文本文件时的常用手法。

场景二:打不开文件时只警告,脚本继续运行
有些场景下,某个文件缺失并不致命,程序可以跳过它继续执行。这时用warn替代die,再配合条件判断,既保留了错误信息,又不中断流程。

复制代码 代码如下:
use strict;
use warnings;

my $filename = 'data.txt';
if (open(my $fh, '<:encoding(UTF-8)', $filename)) {
while (my $row = <$fh>) {
chomp $row;
print "$row\n";
}
close($fh);
} else {
warn "Could not open file '$filename' $!";
}

这个模式在处理多个文件或日志收集时尤其有用:一个文件打不开,错误记下来,程序继续处理下一个文件。

场景三:一次性把整个文件读入数组
如果文件不大,或者你想直接对全部内容进行操作(比如排序、过滤),可以一次把文件读入数组。不过要注意:大文件可能会吃掉大量内存。

复制代码 代码如下:
use strict;
use warnings;

my $filename = 'data.txt';
open (FILEIN, "<", $filename)
or die "Could not open file '$filename' with the error $!";
my @FileContents = ;
for my $l (@FileContents){
print "$l\n";
}
close FILEIN;

这里使用了旧式文件句柄(FILEIN),与新式词法变量(my $fh)相比各有优劣。不过核心思路一致:先读取整个文件,再逐行处理。如果你需要保留换行符,记得用chomp按需去掉。

以上三个案例覆盖了Perl文件读写中最常用的几个分支:异常处理、容错读取、批量装载。根据实际需求选择对应的模式,能让你少走不少弯路。当然,真实项目中还会涉及文件追加、二进制读取等更复杂的操作,不过这些基础场景已经足够应对大部分日常工作了。

本文转载于:https://www.jb51.net/article/65710.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

产品推荐

热门关注