ここの初心者。詳細が不足している場合はお詫び申し上げます。
Perl5で
このようなファイルがあります
precedence = 2
new york
new jersey
florida
precedence = 3
kings
essex
dade
precedence = 1
brooklyn
newark
miami
ファイルをループして、precedenceの値を保持する$ varと、次の「セクション」(precedence = x)まで行を保持する配列(@tmp)を作成することに問題はありません。
最終的に、すべてのセクションを優先順に最終配列にプッシュする必要があります
それで
print @final;
結果は
brooklyn
.....
new york
.....
kings
.....
注:セクションがいくつあるか、各セクションに何行あるかを事前に知ることはできません。
おそらくハッシュのハッシュを作成し、各配列をHoHに配置することを考えました
push @{ $hash{"section_2"} }, @tmp ;
でも知らなかった
a)セクションをロードするたびに@tmp配列を再利用する際に問題が発生する場合(各ループの開始時にセクションをブランクにした後)
b)キー「section_2」の配列内のすべての値を取得して@finalにプッシュする方法を理解できませんでした
もちろん、もっと良いアプローチがあるかもしれません。