网站首页 > 教程分享 正文
上次我们介绍了如何使用open来创建文件句柄并关联文件, 今天我们继续介绍如果对文件来进行操作。
我们先准备一个测试文件test.txt
1,2,3
a,b,c
333fdad
my $file_in = 'test.txt';
my $file_out = 'test2.txt';
open my $fh_in, '<', $file_in
or die "Failed to open file:$file_in\n";
open my $fh_out, '>', $file_out
or die "Failed to open file:$file_out\n";
如果需要读取一行数据, 我们可以这样:
my $str = <$fh_in>;
那如何读取所有数据呢?
my @str_all = <$fh_in>;
这样所有的数据都在我们的数组里面了。
同样是尖括号, 为什么上面只读取了一行, 下面则一次性读取了全部呢?
这就是我们前面说的环境, 在标量环境中, 尖括号一次读取一行, 并返回一个标量值, 而在列表环境中, 尖括号会读取所有的内容, 并返回数组。
我们现在可以读取文件的所有内容了, 但是, 当我们的文件很大时(10G, 100G, 1000T...),如果我们一次性读取所有数据,当数据量很大时, 效率会很低, 当数据量大于内存时, 必然会使程序崩溃。
所以我们使用如下方式, 逐行读取数据:
while(<$fh_in>){
print;
print $fh_out $_;
}
上面的代码, 我们逐行读取文件中的数据, 打印出来, 并写入新文件中.
猜你喜欢
- 2024-10-27 前端教程:JavaScript对象(js对象的操作方法)
- 2024-10-27 在UnRaid系统的DASHBOARD中显示CPU和主板的温度
- 2024-10-27 为什么我十分喜欢C,却很不喜欢C++
- 2024-10-27 想赚高薪?看了这些编程语言的入门方法,学习和玩一样轻松
- 2024-10-27 《Python核心编程》(第2版)第2章 快速入门
- 2024-10-27 程序员5种编程入门方法(程序员5种编程入门方法图解)
- 2024-10-27 你不可能还不会python变量的类型吧?
- 2024-10-27 Perl模式匹配大型连载3——s替换操作
- 2024-10-27 Cobalt Strike 4.8 用户指南-第五节-获取初始访问
- 2024-10-27 「实战」助力数据库开发之接口篇 - Perl 连接 Greenplum
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)