Perl 教程 之 Perl 文件操作 2

简介: Perl 文件操作

Perl 教程 之 Perl 文件操作 2

Perl 文件操作

Perl 使用一种叫做文件句柄类型的变量来操作文件。

从文件读取或者写入数据需要使用文件句柄。

文件句柄(file handle)是一个 I/O 连接的名称。

Perl 提供了三种文件句柄: STDIN,STDOUT,STDERR, 分别代表标准输入、标准输出和标准出错输出。

Perl 中打开文件可以使用以下方式:

open FILEHANDLE, EXPR
open FILEHANDLE

sysopen FILEHANDLE, FILENAME, MODE, PERMS
sysopen FILEHANDLE, FILENAME, MODE

参数说明:

FILEHANDLE:文件句柄,用于存放一个文件唯一标识符。
EXPR:文件名及文件访问类型组成的表达式。
MODE:文件访问类型。
PERMS:访问权限位(permission bits)。

open 函数

以下代码我们使用 open 函数以只读的方式 < 打开文件 file.txt:

open(DATA, "<file.txt");
< 表示只读方式。

代码中的 DATA 为文件句柄用于读取文件,以下实例将打开文件并将文件内容输出:

实例

!/usr/bin/perl

open(DATA, "<file.txt") or die "file.txt 文件无法打开, $!";

while(){
print "$_";
}
以下代码以写入 >的方式打开文件 file.txt:

open(DATA, ">file.txt") or die "file.txt 文件无法打开, $!";

表示写入方式。

如果你需要以读写方式打开文件,可以在 > 或 < 字符前添加 + 号:

open(DATA, "+<file.txt"); or die "file.txt 文件无法打开, $!";
这种方式不会删除文件原来的内容,如果要删除,格式如下所示:

open DATA, "+>file.txt" or die "file.txt 文件无法打开, $!";
如果要向文件中追加数据,则在追加数据之前,只需要以追加方式打开文件即可:

open(DATA,">>file.txt") || die "file.txt 文件无法打开, $!";

表示向现有文件的尾部追加数据,如果需要读取要追加的文件内容可以添加 + 号:

open(DATA,"+>>file.txt") || die "file.txt 文件无法打开, $!";
下表列出了不同的访问模式:

模式 描述
< 或 r 只读方式打开,将文件指针指向文件头。

或 w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

或 a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
+< 或 r+ 读写方式打开,将文件指针指向文件头。
+> 或 w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
+>> 或 a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

目录
相关文章
|
运维 Kubernetes Go
"解锁K8s二开新姿势!client-go:你不可不知的Go语言神器,让Kubernetes集群管理如虎添翼,秒变运维大神!"
【8月更文挑战第14天】随着云原生技术的发展,Kubernetes (K8s) 成为容器编排的首选。client-go作为K8s的官方Go语言客户端库,通过封装RESTful API,使开发者能便捷地管理集群资源,如Pods和服务。本文介绍client-go基本概念、使用方法及自定义操作。涵盖ClientSet、DynamicClient等客户端实现,以及lister、informer等组件,通过示例展示如何列出集群中的所有Pods。client-go的强大功能助力高效开发和运维。
904 1
|
存储 网络协议 算法
注册中心原理和选型:Zookeeper、Eureka、Nacos、Consul和Etcd(二)
经过近2周的学习,原来注册中心除了ETCD和Zookeeper,常用的还有Eureka、Nacos、Consul,下面我们就对这些常用的注册中心,初探它们的异同,便于后续技术选型。
3299 0
注册中心原理和选型:Zookeeper、Eureka、Nacos、Consul和Etcd(二)
|
编解码 API Android开发
APP适配测试白皮书(一)
碎片化越来越严重,苹果相比Android来说稍微好点但最近几年由于创新乏力不断在屏幕尺寸上做文章也使得苹果的适配开始面临更多的挑战。
475 0
APP适配测试白皮书(一)
|
Web App开发 应用服务中间件 Apache
|
4天前
|
人工智能 运维 安全
|
2天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
9天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
801 109
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
379 9