Perl中读取文件最后一行的方法很多,比如

(1)将文件读入数组,取最后一个元素

open (FILE,"file.txt") or die "$!";
my @arr=<FILE>;;
close FILE;
my $last=$arr[$#arr]; #$last里就是最后一行的内容了。

(2)一行一行读入,到最后一行时输出

open (FILE,"file.txt") or die "$!";
while (<FILE>;)
{
open (TMP,">tmp.txt") or die "$!";
print TMP $_;
close TMP;
}
close FILE;

或者

open (FILE,"file.txt") ;
$a=<FILE>;;push(@a,$a);
while (<FILE> )
{
push(@a,$_);
shift@a;
}
close FILE;
print @a;

(3)这个并未尝试过,有兴趣可以试试

http://search.cpan.org/~mjd/Tie-File-0.96/lib/Tie/File.pm
DESCRIPTION ^

Tie::File represents a regular text file as a Perl array. Each element in the array corresponds to a record in the file. The first line of the file is element 0 of the array; the second line is element 1, and so on.

The file is not loaded into memory, so this will work even for gigantic files.

Changes to the array are reflected in the file immediately.

Lazy people and beginners may now stop reading the manual.

(4)以上的方法都需要遍历整个文件,效率较低。下面这个方法是最高效的,特别是文件很大时,方法是:  

  打开文件,把指针移动到最后面,一个一个字节往前读,直到读到\N为止

#!/usr/bin/perl -w

use strict;

my $file = shift or die;
my $content = ""; open (F, $file) or die $!;
seek (F, 0, 2); # set handler at the end of $file
until ($content =~ m/\n(.*)\n?$/)
{
my $string;
if (seek (F, -1024, 1)) # backward 1024 bytes
{
my $n = read (F, $string, 1024) or die $!;
$content = $string . $content;
last if ($n < 1024);
seek(F, -1024, 1);
}
else{
my $len = tell F;
seek (F, 0, 0) || die "see error at $file";
read (F, $string, $len) or die $!;
$content = $string . $content;
last;
}
}
close(F); if ($content =~ m/\n\n$/)
{
print "\n";
}elsif ($content =~ m/\n?(.*)\n?$/){
print "$1\n";
}else{
print $content, "\n";
}

文中内容来自:提问http://bbs.chinaunix.net/thread-599099-1-1.html

windows下Perl如何读取大文件的最后一行(总结)的更多相关文章

  1. windows下如何快速删除大文件

    rmdir  磁盘:\文件夹的名字  /s /q; eg:rmdir E:\vue_workspace\KB\day08    /s/q /S 表示除目录本身外,还将删除指定目录下的所有子目录和文件. ...

  2. windows下IIS+PHP解决大文件上传500错问题

    linux下改到iis+php后,上传大于2M就出500错,改了php.ini中的upload_max_filesize也不行,最后解决如下: 第一步:修改php.ini 上传大小限制 (以上传500 ...

  3. PHP如何快速读取大文件

    在PHP中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file.file_get_contents之类的函数,简简单单的几行代码就能 很漂亮的完成我们所需要的功能.但当所操作的文件是一个比较大的 ...

  4. php使用file函数、fseek函数读取大文件效率分析

    php读取大文件可以使用file函数和fseek函数,但是二者之间效率可能存在差异,本文章向大家介绍php file函数与fseek函数实现大文件读取效率对比分析,需要的朋友可以参考一下. 1. 直接 ...

  5. Java多线程读取大文件

    前言 今天是五一假期第一天,按理应该是快乐玩耍的日子,但是作为一个北漂到京师的开发人员,实在难想出去那玩耍.好玩的地方比较远,近处又感觉没意思.于是乎,闲着写篇文章,总结下昨天写的程序吧. 昨天下午朋 ...

  6. PHP读取大文件的几种方法介绍

    读取大文件一直是一个头痛的问题,我们像使用php开发读取小文件可以直接使用各种函数实现,但一到大文章就会发现常用的方法是无法正常使用或时间太长太卡了,下面我们就一起来看看关于php读取大文件问题解决办 ...

  7. IIS7下swfupload上传大文件出现404错误

    要求上传附件大小限制在2G,原本以为可以轻松搞定.在编译模式下可以上传大文件,可是在IIS7下(自己架的服务器),一上传大的文件就会出现 Http 404错误,偶尔有的文件还有IO. error错误. ...

  8. Java高效读取大文件

    1.概述 本教程将演示如何用Java高效地读取大文件.这篇文章是Baeldung (http://www.baeldung.com/) 上“Java——回归基础”系列教程的一部分. 2.在内存中读取 ...

  9. Java高效读取大文件(转)

    1.概述 本教程将演示如何用Java高效地读取大文件.这篇文章是Baeldung(http://www.baeldung.com/) 上“Java——回归基础”系列教程的一部分. 2.在内存中读取 读 ...

随机推荐

  1. go——切片(二)

    切片是一种数据结构,这种数据结构便于使用和管理数据集合. 切片是围绕动态数组的概念构建的,可以按需自动增长和缩小. 切片的动态增长是通过内置函数append来实现的.这个函数可以快速且高效地增长切片. ...

  2. 常用restful路由

    tax_categories GET /tax_categories(.:format) tax_categories#index POST /tax_categories(.:format) tax ...

  3. 最牛技术 1秒启动Linux的窍门

    1秒启动Linux可以实现吗?我们知道Linux系统开机并不算快,最少也需要11秒,但是,现在有一个技巧,可以1秒打开linux系统,到底是什么技术这么牛?请看下文详细介绍 尽可能快的启动系统,对于自 ...

  4. Select the JavaScript graphing libraries you would like to compare

    Select the JavaScript graphing libraries you would like to compare:             Overview Summary Fus ...

  5. 初入Spring-boot(一)

    一.利用eclipse快速创建Spring-boot项目 1.首先去http://start.spring.io网站,勾选所需要的starter,如图: 选择完之后下载该文件,打开后发现是一个正常的m ...

  6. windchill系统——开发_生命周期状态的增加

    步骤如下 ResourceBuild wt.lifecycle.StateRB ant -f codebase/MakeJar.xml 这样就可以了,下面是查看

  7. gcm 被微信弃用的原因

    作者:feng xixi链接:https://www.zhihu.com/question/21514839/answer/18496706来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...

  8. Spring boot 与mybatis 多数据源问题

    https://www.cnblogs.com/ityouknow/p/6102399.html Spring Boot 集成Mybatis实现多数据源 https://blog.csdn.net/m ...

  9. 某些编辑器运行C程序闪退的解决办法

    在某些C语言编辑器中运行C语言程序或点击生成的.exe文件出现闪退现象的解决办法,主要有两种,还有其它方法欢迎交流. 包含头文件<windows.h>,在程序末尾添加system(&quo ...

  10. RQN 273 马棚问题 dp

    PID273 / 马棚问题  2016-07-29 18:21:55 运行耗时:1624 ms 运行内存:16248 KB 题目描述 每天,小明和他的马外出,然后他们一边跑一边玩耍.当他们结束的时候, ...