垂直分隔解析的文件我有一個看起來像這樣的文件:在Perl
*NEWRECORD
RECTYPE = D
MH = Calcimycin
AQ = AA
MED = *62
*NEWRECORD
RECTYPE = D
MH = Urinary Bladder
AQ = AB AH BS CH CY DE EM EN GD IM IN IR ME MI PA PH PP PS RA RE RI SE SU TR UL US VI
CX = consider also terms at CYST- and VESIC-
MED = *1359
每個記錄塊都有不同的行數,(例如CX
條目並不總是存在)。 但是,如果CX
存在,則僅顯示爲1條目。 我們希望獲得一個以「MH」作爲鍵和「CX」作爲值的哈希表。
因此解析,我們希望得到這個結構上面的數據:
$VAR = { "Urinary Bladder" => ["CYST-" , "VESIC-"]};
什麼是分析它的正確方法?
我堅持這一點,那不會給我結果,因爲我想要的。
use Data::Dumper;
my %bighash;
my $key = "";
my $cx = "";
while (<>) {
chomp;
if (/^MH = (\w+/)) {
$key = $1;
push @{$bighash{$key}}, " ";
}
elsif (/^CX = (\w+/)) {
$cx = $1;
}
else {
push @{$bighash{$key}}, $cx;
}
}