perl+;在文件的两行之间追加文本

perl+;在文件的两行之间追加文本,perl,Perl,我需要编辑文件,主要问题是在文件中的两行之间添加文本 例如,我需要附加以下文本 a b c d e f 1 2 3 4 5 6 bla bla 在第一条线和第二条线之间 first_line=")" second_line="NIC Hr_Nic (" 如何通过perl实现这一点 lidia假设您对Perl了解很少,您可以使用该解决方案读取数组中的整个文件(假设它不是太大),然后您只需将新行作为元素添加到正确的位置(并将其重写回文件系统) 如果您不知道如何写回文

我需要编辑文件,主要问题是在文件中的两行之间添加文本

例如,我需要附加以下文本

   a b c d e f 

   1 2 3 4 5 6

   bla bla
在第一条线和第二条线之间

 first_line=")"

 second_line="NIC Hr_Nic ("
如何通过perl实现这一点


lidia

假设您对Perl了解很少,您可以使用该解决方案读取数组中的整个文件(假设它不是太大),然后您只需将新行作为元素添加到正确的位置(并将其重写回文件系统)

如果您不知道如何写回文件,则会出现以下情况:

open FH, ">>$file_name" or die "can't open '$file_name': $!"; # <<<< outside the loop
foreach ( @your_array )
{

    print FH $_;

}
close FH; # <<<<<<<< outside the loop

openfh,“>>$file\u name”或die“无法打开“$file\u name”:$!”;# 可以在临时文件中进行插入:

use strict;
use warnings;

open my $in, '<', 'file_in' or die "can't open 'file_in' for reading : $!";
open my $out, '>', 'file_out' or die "can't open 'file_out' for writing : $!";
my $previous = '';
while(my $line=<$in>) {
    chomp($line);
    if($previous eq ')' && $line eq 'NIC Hr_Nic (') {
        print $out "$previous\na b c d e f\n1 2 3 4 5 6\nbla bla\n";
    } elsif($previous ne '') {
        print $out $previous,"\n";
    }
    $previous = $line;
}
print $out $previous;
close $in;
close $out;
使用严格;
使用警告;

打开我的$in,'对StackOverflow.com来说可能是一个更好的问题。。。