首页 > 代码库 > perl对大量大文件进行读写
perl对大量大文件进行读写
在对大量文件进行读写时,最好将文件存为gz文件,可以节约读写硬盘的时间,硬盘也不会那么卡。
在写gz文件时,最好使用PerlIO::gzip模块。这个模块不用调用gzip命令,减少了程序占用的线程数量,可以有效的降低load。
下面是一个例子。
#! /usr/bin/env perl use strict; use warnings; use List::Util; use FileHandle; use PerlIO::gzip; my %fh; my @a=(1..100); for(my $i=1;$i<=100;$i++){ open $fh{$i}, ">:gzip", "x.$i.gz"; #open ($fh{$i},"|gzip > x.$i.gz"); #此行是不推荐的写法 } for(my $i=0;$i<1e9;$i++){ my @b=List::Util::shuffle @a; my $x=$b[0]; $fh{$x}->print("@b\n"); } foreach my $i(keys %fh){ close $fh{$i}; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。