各行に異なる値を持つ同じタイプのデータを印刷しようとしています。その後、各タイプの値を対応する名前(MMaaa / gg / dd)と組み合わせます。
データ例を以下に示します。グループ1を例にとると、名前はMMxxxx / xxx / xxxx(MMaaa / gg / dd)の形式で、タイプ値はID03です。グループは、フルーツ(eg:apple)、フルーツ名(eg:MMbb / gggg / iii)、タイプ値(eg:ID02、ID04、ID05)、または2つのタイプのフルーツと名前(eg:appleとorange)で構成されます。
アップルの名前とそのタイプの値の唯一の組み合わせが私が欲しいものです。期待どおりの結果を得るために組み合わせを印刷しようとしましたが、失敗しました。これまで私はこれを試しました:
while (@array = <FILE>) {
foreach $line (@array) {
if($line =~ m/apple\s{1}MM/) {
$a = $line;
if($line =~ m/(type)/) {
$b = $line;
}
}
print "\n$a/$b\n";
}
}
データ:
apple
apple MMaaa/gg/dd
type ID03_________________group 1
apple
apple MMsss/ff/dd
orange MMmm/ss
orange MMll/fff______________group 2
apple
apple MMbb/gggg/iii
type ID02
type ID04
type ID05_________________group 3
apple
apple MMhh/jj/lll
orange MMff/gg_______________group 4
apple
apple MMll/pp/ooo
type ID09
type ID03_________________group 5
..
..
.
.
期待される結果:
aaa/gg/dd/ID03
bb/gggg/iii/ID02
bb/gggg/iii/ID04
bb/gggg/iii/ID05
ll/pp/ooo/ID09
ll/pp/ooo/ID03