gpt4 book ai didi

perl - 在 perl 中读取或写入文件中特定行的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 01:23:09 29 4
gpt4 key购买 nike

我正在尝试读取文件的最后一行。并且有许多方法可用于读取文件的特定行。

首先:

  @array=<FILE_HANDLE>;
$line=(reverse @array)[0];

第二个:ReadBackwards包

$bw = File::ReadBackwards->new( 'log_file' ) or
die "can't read 'log_file' $!" ;
$log_line = $bw->readline;

我想知道在 perl 中哪种方法更可取,是否使用 package或将整个文件内容存储到变量中。

最佳答案

您的标题提出的问题与您的 body 提出的问题不同。

要从任意大的文件中读取最后一行(或从最后一行开始的第 n 行),绝对要使用 File::ReadBackwards。

要读取或写入文件中的任意一行,请使用 Tie::File:

use Tie::File;
tie my @line, 'Tie::File', 'filename' or die "unable to open filename: $!";
print "line 123 is $line[123].";
$line[42] = 'abc';
print "line 42 is now abc.";

对于大文件,这将比 File::ReadBackwards 昂贵得多,因为它需要通读整个文件直到您要修改的行(或者通读整个文件,如果使用负索引,所以如果你这样做,你最好使用 File::ReadBackwards 然后手动更新文件)。

关于perl - 在 perl 中读取或写入文件中特定行的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38767284/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com