Arrays 我想在匹配使用perl找到的模式之后,向数组添加一个元素

Arrays 我想在匹配使用perl找到的模式之后,向数组添加一个元素,arrays,perl,Arrays,Perl,我已经将一个文件的所有行复制到一个数组中,并循环该数组进行模式匹配。一旦模式匹配,我想将行添加到同一个数组中,并在另一个文件中打印 my @lines = <FILE_IN>; foreach my $line (@lines){ if($line =~m/\s(\w*)_region\s/){ print $line; } my@lines=; foreach my$行(@行){ 如果($line=~m/\s(\w*)\u region\s/){ 打印$行; } 我尝试直到模式

我已经将一个文件的所有行复制到一个数组中,并循环该数组进行模式匹配。一旦模式匹配,我想将行添加到同一个数组中,并在另一个文件中打印

my @lines = <FILE_IN>;
foreach my $line (@lines){
if($line =~m/\s(\w*)_region\s/){
print $line;
}
my@lines=;
foreach my$行(@行){
如果($line=~m/\s(\w*)\u region\s/){
打印$行;
}

我尝试直到模式匹配,并希望在此搜索之后添加一个元素。

打开我的$ifile,'my@lines=;foreach my$index(反向0..$#lines){if($lines[$index]=~m/\s(\w*)\u region\s){splice@lines($index,0,/t$string\n”)}这对我起了作用。请考虑添加一些说明。这个代码是如何解决这个问题的。虽然这个代码片段是受欢迎的,并且可以提供一些帮助,但是它将是如何以及为什么它能解决这个问题。记住,你是在回答未来读者的问题,而不仅仅是现在请求的人!请回答你的答案。并说明适用的限制和假设。
open my $ifile,'<:encoding(UTF-8)', '/path/to/file.txt' || die $!;
while (my $line = <$ifile>) {
    chomp $line;
    if ($line =~m/\s(\w*)_region\s/x) {
        print $line
    }   
}
close $ifile;