use strict;
use warnings;
open(my $fd, ">>file.txt");
print $fd " 20";
如果最后一行已经有了换行符,输出将在下一行结束,即
a b c d 10
20
在这两种情况下工作的较长版本将是
use strict;
use warnings;
open(my $fd, "file.txt");
my $previous;
while (<$fd>) {
print $previous if ($previous);
$previous = $_;
}
chomp($previous);
print "$previous 20\n";
sub read_file {
my ($file) = @_;
return do {
local $/;
open my $fh, '<', $file or die "$!";
<$fh>
};
}
my $text = read_file($filename);
chomp $text;
print "$text 20\n";
4条答案
按热度按时间wnavrhmk1#
假设最后一行没有换行符
如果最后一行已经有了换行符,输出将在下一行结束,即
在这两种情况下工作的较长版本将是
但是,此版本不会修改原始文件。
u4dcyp6a2#
试试
脚本版本
输出示例
k4emjkb13#
说明:通过设置输入记录分隔符
-0777
来读取整个文件,对与文件结尾匹配的数据读取执行替换,或者就在最后一个换行符之前。您还可以使用
-i
开关对输入文件进行就地编辑,但这种方法有风险,因为它会执行不可逆的更改。它可以与备份一起使用,例如-i.bak
,但是该备份在多次执行时会被覆盖,因此我通常建议使用shell重定向,就像我上面所做的那样。tgabmvqs4#
首先读取整个文件,你可以通过这个子例程
read_file
来完成: