我有一个以下格式的文本文件。我想每次选择一个实例(行ABC
到MNR
)并处理相应的行和列。
ABC 12 20150911 121 005 001
BBC AUX BUX 34 70U 1 ? ? ? ? ? ? ?
AXM B 300
HDG D 34 ? ? ? ? ? ?
XLG H 43 1 003 ? ? ? ? ?
MNR R 05 0 ? 5 ? ? ? ?
ABC 10 20150910 121 005 001
BBC AUX BUX 34 70U 1 ? ? ? ? ? ? ?
AXM B 500
HDG D 30 ? ? ? ? ? ?
XLG H 83 1 003 09 ? ? ? ?
MNR R 09 0 ? 5 ? ? ? ?
ABC 12 20150911 121 005 001
BBC AUX BUX 34 70U 1 ? ? ? ? ? ? ?
AXM B 380
HDG D 34 43 ? ? ? ? ?
XLG H 22 1 003 ? ? ? ? ?
MNR R 05 0 1 5 ? ? ? ?
答案1
好吧,您当然可以将它们解析为哈希数组,但是然后呢?
#!/usr/bin/env perl
use strict;
use warnings;
my @abcs;
while (<>) {
my ($name, @values) = split ' ';
if (m/^ABC\s/) {
push @abcs, { $name => \@values }
} else {
$abcs[-1]->{$name} = \@values;
}
}
use Data::Dumper; warn Dumper \@abcs;
print $abcs[0]{BBC}[3], "\n";