perl几个读取文件命令

perl读取文件、输出到文件的方法 本文介绍perl如何读取文件,存入哈希,调用哈希,存入文件: #! /usr/bin/perl use strict; use warnings; if(@ARGV!=2){ print "\tUsage: perl $0 <infile>\n"; die "\tUse with correct infile"; } ##读入文件$ARGV[0]存入哈希 #open IN, "<$ARGV[0]"; #open IN, "<","$ARGV[0 阅读详情

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} -->



####################
方案一 while 输出 最常用

open (FILES "index");
while (){
print;
}
close(FILES);
程序占用 CPU 时间: 0.23 usr + 0.22 sys 合计运行时间 450 毫秒
#######################
方案二: 数组读取输出
open (FILES "index");
@reads=;
print @reads;


程序占用 CPU 时间: 4.18 usr + 0.09 sys 合计运行时间 4270 毫秒 这个方法也常用,但效率最低的

换为 @_;
open (FILES "index");
@_=;
print @_;
程序占用 CPU 时间: 3.64 usr + 0.11 sys 合计运行时间 3750 毫秒 节省一点时间:)

################################
方案三:

open (FILES "index");
@_=;

#print @_;
close(FILES);
foreach (@_){
print;
}

程序占用 CPU 时间: 3.79 usr + 0.15 sys 合计运行时间 3940 毫秒
很希奇,和上面相同,说明,只要打印数组,就和 foreach 处理方式相同
##############################
方案 4 不打印
open (FILES "index");
@_=;
#print @_;
close(FILES);
程序占用 CPU 时间: 3.45 usr + 0.00 sys 合计运行时间 3450 毫秒 还是相同
更奇怪,少一次循环,为什么时间还相同

#########################################
方案 6 ,用变量包办数组直接读取输出。

open (FILES "index");
$/="";
$reads=;
print $reads;
close(FILES);
$/="/n";

程序占用 CPU 时间: 0.04 usr + 0.00 sys 合计运行时间 40 毫秒 真快丫

##############################################
方案 7 用分割变量来从新生成数组,包办数组 @_= 直接读取方式,循环输出
open (FILES "index");
$/="";
$reads=

close(FILES);
$/="/n";

@_=split ( //n/$reads);
foreach (@_){
print $_;
}


程序占用 CPU 时间: 0.34 usr + 0.11 sys 合计运行时间 450 毫秒

有趣,比普通 @_= 直接读的方法要快 10 倍,但很是不解

假如数组不全部输出,单纯赋值占用时间很短
open (FILES "index");
$/="";
$reads=

close(FILES);
$/="/n";

@_=split ( //n/$reads);

程序占用 CPU 时间: 0.05 usr + 0.00 sys 合计运行时间 50 毫秒

###############################################

散列
--------------------------------------------------------------------------------

open (FILES "index");
while (){$i++;
$hash{$i}=($_)
}
print %hash;

close(FILES);


程序占用 CPU 时间: 0.66 usr + 0.41 sys 合计运行时间 1070 毫秒

数组的最快方式是 450 毫秒,散列全部输出时间大概比数组慢一倍

散列不输出
open (FILES "index");
while (){$i++;
$hash{$i}=($_)

}
#print %hash;

close(FILES);
程序占用 CPU 时间: 0.09 usr + 0.04 sys 合计运行时间 130 毫秒 还是比数组慢

从 hash 中取出一个元素

open (FILES "index");
while (){$i++;
$hash{$i}=($_)
}
close(FILES);
print $hash{8900};

程序占用 CPU 时间: 0.13 usr + 0.00 sys 合计运行时间 130 毫秒 几乎不增加时间

数组也是,测不出时间
open (FILES "index");
$/="";
$reads=;

close(FILES);
$/="/n";

@_=split ( //n/$reads);

print $_[8900];

程序占用 CPU 时间: 0.05 usr + 0.00 sys 合计运行时间 50 毫秒
##########################
以上测试结果有的差别很大,有的差别不大。

即使有些差别虽然是细微的,程序中如果把这些命令都采用最优化方式,相信会有效果的

我最近在把我的论坛调用比较频繁的核心代码进行逐行检查,反复测试优化中 ~~~~

谁把坡见的方法都测试以下,拿出来给兴趣者继承分享,我也继续测试中,今晚测试系统级 IO 命令,看有没有差别

仅供参考。

附, my 测试方法
#########################
use CGI::Carp qw(fatalsToBrowser);
use Benchmark;
$TT0 = new Benchmark;
print "Content-type: text/html/n/n";
open (FILES "index");
$/="";
$reads=;

close(FILES);
$/="/n";

@_=split ( //n/$reads);
print @_;

###########################
print"";
$TT1 = new Benchmark;
$td = Benchmark::timediff($TT1 $TT0);
$td = Benchmark::timestr($td);
$td =~ /(/d+)/s*wallclock secs /(/s*?(/d*?/./d*?)/s*usr/s*/+/s*(/d*?/./d*?)/s*sys/i;
my $alltimas=($2+$3)*1000;
print "
程序占用 CPU 时间: $2 usr + $3 sys 合计运行时间 $alltimas 毫秒 ";

exit;

 

 

 

 

perl中同时读取两个文件并进行对应计算 用句柄读取大文件进数组是很占内存的事,所以,一边读数据,一边处理数据,处理完之后就直接输出到文件,这是个很靠谱的想法,尤其是处理特大数据的时候,这个想法尤其珍贵。下面是具体例子: 输入文件1: 31 0 32 0 33 0 34 0 35 0 36 0 37 0 38 0 39 0 40 阅读详情

相关推荐

Perl语言的文件操作

本文介绍了Perl语言中常见的文件操作,包括打开、读取、写入、删除文件,以及文件状态查询和锁定机制。由于Perl相比其他语言在处理文件和文本上更为灵活,因此在实际编程中,能够高效地进行文件操作,对程序员来说是非常重要的一项技能。希望本文能帮助读者更好地理解和应用Perl中的文件操作技巧。随着对Perl语言的不断深入学习,读者可以在实际项目中灵活运用这些知识,提升工作效率。

2501_90300458的博客 1625

Perl读取文件信息

use Cwd; my $dir=getcwd; print "$dir\n"; print "hello\n"; open(IN,"<../Makefile") or print "$!"; my $count=0; while(<IN>) { $count+=1; $line=$_; print "$line"; } print "\n一共有 $count 行!"; close IN; 逐行解析 首先我们需要使用Cwd模块。 定义变量dir,用于存储当.

Larry Chow 3818

读取excel文件(使用perl处理)

做了一个简单的处理excel文件的perl程序,批量读取其中的数据将其转换csv文件 代码如下: #!/usr/local/bin/perl ######################################### #xlstocsv ver 0.2 ! # #xls文件转换csv # #作者:昨

zuoyexingchen的专栏 1815

Perl教学 第五篇 文件读写

一、打开、关闭文件 语法为open (filevar, filename),其中filevar为文件句柄,或者说是程序中用来代表某文件的代号,filename为文件名,其路径可为相对路径,亦可为绝对路径。open(FILE1,"file1");open(FILE1, "/u/jqpublic/file1");打开文件时必须决定访问模式,在Perl中有三种访问模式:读、写和添加。后两种模式的区别在于

Hank_Huang的专栏 3080

perl读取文件夹文件。

perl脚本,读取一个文件夹所有文件。 简单实用。

Stata森林图进阶:个性化定制与高级技巧

本文详细介绍了Stata森林图的进阶技巧,包括个性化定制与高级应用。通过meta分析工具如metan命令,用户可以优化字体、颜色、坐标轴等视觉元素,提升森林图的专业性和可读性。文章还提供了黑白印刷设置、高分辨率导出等实用技巧,帮助科研人员制作符合学术出版要求的森林图。

ios99的博客 254

Perl读取文件的两种常用方式

Perl读取文件的两种常用方式 转载▼ 整体读入,逐行处理 open(FILE," @linelist=; foreach $eachline(@linelist){     print $eachline; } close FILE; 逐行读入,边读边处理 open(FILE," while (){     print; } close FILE;

kongjunlongaa的博客 2万+

Chroma向量数据库实战:用Python快速搭建本地知识库(附中文诗词检索案例)

本文详细介绍了如何使用Chroma向量数据库和Python快速搭建本地知识库,并附有中文诗词检索的实战案例。通过解析核心概念、数据准备、向量化及智能检索实现,展示了Chroma在处理中文语义搜索时的轻量级与易用性,为开发者构建AI应用原型提供了实用指南。

weixin_29221753的博客 479

【Perl脚本】文件读取

转载:https://blog.youkuaiyun.com/yangxuan12580/article/details/51506216 一、打开、关闭文件 语法为open (filevar, filename),其中filevar为文件句柄,或者说是程序中用来代表某文件的代号,filename为文件名,其路径可为相对路径,亦可为绝对路径。 open(FILE1,"file1"); ...

Beyond_1024的博客 2803

架构设计之架构治理

架构治理的本质是“用规则约束复杂性,用流程保障落地,用数据驱动优化”先定目标:明确量化的治理目标,避免盲目行动;立标准:建立覆盖分层、选型、接口、拆分的统一规范,奠定治理基础;强评审:通过架构评审把控设计环节,提前规避风险;全流程:将治理规则贯穿设计、开发、测试、部署、运维全生命周期;重保障:通过组织、流程、工具确保治理落地,而非“纸上谈兵”;持续迭代:随业务与技术演进优化治理规则,避免“一劳永逸”。

xiaolyuh的专栏 810

⭐⭐⭐全网最详细YOLOv8教程,从环境配置到自己训练,再到数据集的制作,包的各位⭐⭐⭐

问题原因:当你“pip install ultralytics” 时,torch和torchvision会作为它的依赖一起安装了,当执行“pip install torch torchvision torchaudio --index-url。”时,会卸载torch,然后再安装torch+cuda版本,但是不会自动卸载torchvision已有版本,然后再安装torchvision+cuda版本。🎉🎉🎉恭喜各位道友,已经可以训练模型了,现在就是制作自己的数据集,所谓申神通秘境,随心所欲,万物皆可识别也

weixin_74840239的博客 7492

关于perl的文件读取

关于perl的文件读取 Perl语言操作文件是很常使用的操作,本文将介绍读取文件的一点小技巧。本文将介绍两种读取文件的方法: l  使用perl的内置函数readline;l  另外一种就是使用文件句柄直接操作""。 1.       使用readline readline EXPRreadline 从文件句柄中读取数据,在标量环境中每一次从文件

中关村村长的专栏 6277

apt-get update时出现GPG error:... bionic InRelease:The following signatures were invalid: EXPKEYS解决方案

本文主要介绍了apt-get update时出现W: GPG error: … bionic InRelease: The following signatures were invalid: EXPKEYSIG B7B3B788A8D3785C MySQL Release Engineering E: The repository ‘… bionic InRelease’ is not signed.解决方案,希望能对使用Ubuntu系统的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

【perl】perl 同时读取2个文件

perl 读取两个相同列的文件 perl 读取两个相同列的文件,进行一对应列的计算。可以使用hash,但文件很大的时候不太适用,因为hash占内存很大。 $cat A.file.txt name num A 22 B 33 $cat B.file.txt name num A 11 B 23 open(f1, "<data1"); open(f2, "<data2"); # initialize hashes %data1 = (); %data2 = (); while(($li.

weixin_41772125的博客 1650

python基础之语言发展历史

博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。 目录一、前言二、发展历史1、Python是一种面向对象的解释型编程语言2、Python常被称为胶水语言3、Python由Guido开发4、Python连续多年入选编程语言TOP105、Python的发展历史三、总结 一、前言   由于Python语言的简洁性、易读性以及可扩展性,它在网络爬虫、数据分析、.

jiankang66的博客 3348

Redhawk: 为什么STA CHECK中switch cell覆盖率为0(STA file中switch control pin没有timing window)?

如题,做dynamic analysis时,不需要switch cell的timing window信息,但是做low power analysis需要做上电时switch cell的timing window就是必须的了,本文对switch cell control pin没有timing window (STA CHECK覆盖率为零)的这种现象做分析。

m0_61544122的博客 1196

如何在Perl中读取和写入文件

Perl is an ideal language for working with files. It has the basic capability of any shell script and advanced tools, such as regular expressions, that make it useful. In order to work with Perl file...

cumao2792的博客 3815

YOLOv13改进策略【YOLO和Mamba】| 替换骨干 Mamba-YOLOv13-T !!! 最新的发文热点

模块是模型中的一个重要组成部分,其主要作用是在模型的初始阶段对输入图像进行处理,方便后续的特征提取和目标检测。以下是对。

Limiiiing的博客 353

用Perl读取一个目录下的所有文件名

如果你想用Perl读取一个目录下的所有文件名,你应该怎么办呢?一般来讲,我喜欢用两种方法。 第一种方法,直接用readdir来读取目录句柄。 use warnings; use strict; my $dir = "./test"; my $file; my @dir; opendir (DIR, $dir) or die "can't open the directory!";

nciaebupt 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Perl中文件读取操作

一、打开、关闭文件 二、读文件 三、写文件 四、判断文件状态 五、命令行参数 六、打开管道 一、打开、关闭文件   语法为open (filevar, filename),其中filevar为文件句柄,或者说是程序中用来代表某文件的代号,filename为文件名,其路径可为相对路径,亦可为绝对路径。     open(FILE1,"file1");     open(F

小小白 2万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

perl读取文件

1)文件读取的3中方法   按行读,存入标量 while () { print; } 按行读,存入数组 @array = ; 读入整个文件 ,存入标量 $string = do { local $/; ; };   2)读文件实例 open (EP,"/etc/passwd");while () {chomp;print "I saw $_ in the password fi

http://itech.cnblogs.com 728

perl文件读取之心得

在perl中用到的读文件一般有两种方法:1.先把整个文件download到一个数组里面然后对数组进行遍历操作。如:open (IN,"alignresult.txt") ||(die "can not open the file input.txt/n$!");my @all = ;foreach $line(@all){process $line;}或者foreach $line(){...}语

红羊家园 6854

Perl 读取一个目录下的所有文件名

如果你想用Perl读取一个目录下的所有文件名,你应该怎么办呢?一般来讲,我喜欢用两种方法。 第一种方法,直接用readdir来读取目录句柄。 下面展示一些 内联代码片。 use warnings; use strict; my $dir = "./test"; my $file; my @dir; opendir (DIR, $dir) or die "can't open the directory!"; @dir = readdir DIR; foreach $file (@dir) { if (

JjinYyi的博客 1860

perl读取文件夹下的文件

#!usr/bin/perl-w usestrict; my$file_name;#文件名 my$num_1; my$num_2; my$num_3; my$num_4; my@result=qw//; my$sum=0; my$print_line;#写文件名以及数据处...

1318

[转帖] Linux 下面 perl 命令的简介

https://www.jb51.net/article/123326.htm 感觉挺好的 改天需要仔细学习一下. 前言 本文主要给大家介绍了关于Perl单行命令的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 与One-Liner相关的perl参数 -a 自动分隔模式,用空格分隔$并保存在@F中,也就是@F=split //, $ ...

weixin_30832351的博客 3834
上一篇: PERL: 获取system输出
下一篇: Perl文件及目录操作
wunderup
博客等级 码龄20年 13粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值