我想在我的文件中用‘坏’替换一个‘好’模式。目前我正在做的是:
#!/perl/bin/perl
$filename= "abc.txt";
open my $fh, $filename;
my $text = do { local( $/ ); <$fh> };
close $fh;
$text =~s/good/bad/g;有没有办法在不读取整个文件的情况下完成此操作??
编辑:假设我知道文件中只有一个“好”。
另外,嗨,我是新来的。希望我这样做是正确的。
发布于 2013-07-15 18:12:08
您可以使用Tie::File
#!/usr/bin/perl
use strict;
use Tie::File;
my $filename = ...;
tie my @lines, 'Tie::File', $filename or die;
for (@lines) {
s/good/bad/g and last;
}如果你想逐行阅读,也要确保不是整个文件都被吞没了,例如使用:
#!/usr/bin/perl
use strict;
use Tie::File;
my $filename = ...;
tie my @lines, 'Tie::File', $filename or die;
for(my $i=0; ; $i++) {
last if !defined $lines[$i]; # eof
last if $lines[$i] =~ s/good/bad/g;
}https://stackoverflow.com/questions/17651406
复制相似问题