perl读写文件代码实例
#mode operand create truncate #read < #write > yes yes #append >> yes 在Perl中处理文件读写,几乎是每个开发者都会频繁接触的任务。但别看操作简单,细节里却藏着不少坑。这里整理三个最常见的场景,从异常处理到批量读取,覆盖了日常工作
#mode operand create truncate
#read <
#write > yes yes
#append >> yes

在Perl中处理文件读写,几乎是每个开发者都会频繁接触的任务。但别看操作简单,细节里却藏着不少坑。这里整理三个最常见的场景,从异常处理到批量读取,覆盖了日常工作中大部分需求。直接看代码,比空谈要实在得多。
场景一:如果打不开文件,直接抛出异常
这是最干脆的做法——文件不存在或无法打开,脚本立刻终止,并给出明确错误信息。适合那些“拿不到数据就无需继续”的场景,比如配置文件缺失、关键输入文件被删除。
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 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 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文件读写中最常用的几个分支:异常处理、容错读取、批量装载。根据实际需求选择对应的模式,能让你少走不少弯路。当然,真实项目中还会涉及文件追加、二进制读取等更复杂的操作,不过这些基础场景已经足够应对大部分日常工作了。
Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。
Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。
Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。
PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。
Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等
Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。













