次のようなファイルがあります
line1
line2
line3
line4
.endm
line5
line6
line7
line8
.endm
このファイルを .endm で分割し、内容を 2 つの異なる配列に配置したいと考えています。出力は次のようになります
@array1=(line1,line2,line3,line4);
@array2=(line4,line6,line7,line8);
使ってみた
@array = split(".endm",my_file.txt);
print("Array1 = $array[1]\nArray2 = $array[2]\n);
しかし、これは最後の .endm の行番号を出力するだけです
私も次のようなことを試しました
#! /usr/intel/bin/perl -w
use strict;
my $count=0;
open(my $fh, "<", "a.txt")|| die "can't open UTF-8 encoded filename: $!";
my @lines = <$fh>;
my @array;
LOOP: foreach my $line (@lines) {
chomp ($line);
$count = $count+1;
push (@array,$line);
if ($line =~ m/.endm/) {
pop (@array);
last LOOP;
}
}
print("Array : @array\n");
close $fh;
これは出力@array=(line1,line2,line3,line4);
しますが、別の配列に配置できるように、他の4行が必要です
では、キーワードに基づいてファイルを分割するにはどうすればよいでしょうか。