我已经将文件的所有行复制到数组,并循环此数组进行模式匹配,一旦模式匹配,我想将行添加到相同的数组并打印在另一个文件中。我想在使用Perl找到匹配模式后添加元素到阵列
my @lines = <FILE_IN>;
foreach my $line (@lines){
if($line =~m/\s(\w*)_region\s/){
print $line;
}
我试图直到模式匹配,并希望在此搜索后添加一个元素。
我已经将文件的所有行复制到数组,并循环此数组进行模式匹配,一旦模式匹配,我想将行添加到相同的数组并打印在另一个文件中。我想在使用Perl找到匹配模式后添加元素到阵列
my @lines = <FILE_IN>;
foreach my $line (@lines){
if($line =~m/\s(\w*)_region\s/){
print $line;
}
我试图直到模式匹配,并希望在此搜索后添加一个元素。
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;
请考虑添加一些说明。这个代码如何解决这个问题。 – Darshana
虽然这段代码片段是受欢迎的,并且可以提供一些帮助,但它会[如果包含解释](/ meta.stackexchange.com/q/114762)*如何*和*为什么*会大大改进问题。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请编辑您的答案以添加解释,并指出适用的限制和假设。 –
我@lines =; foreach my $ index(reverse 0 .. $#lines){if($ lines [$ index] =〜m/\ s(\ w *)_ region \ s){splice @lines($ index,0,“/ t $ string \ n“);}}这为我工作。 –
user43102