我有如下输入格式,我想为这些数据创建一个表格格式。
CELL = "abc"
"model" "abc"
"description" "qwerty+keypad with slide"
**tech**
size (big \$l \$w m)
termOrder (x y z)
namePrefix "S"
prop (nil \$l l \$w w)
**spec**
term (nil C \:1 B \:2 E \:3)
termOrder (x y z)
***********************************************************
CELL = "efg"
"model" "efg"
"description" "touchscreen+qwerty no slide"
**tech**
size (small \$l \$w m)
termOrder (x y z)
namePrefix "S"
prop (nil \$l l \$w w)
**spec**
term (nil x \:1 y \:2 z \:3)
termOrder (x y z)
我想要一个表格,左边的名字作为标题,右边的数据作为它的值。
. tech spec
CELL model description size termOrder namePrefix prop termOrder Term
这些是标题,我想要这些标题下方的相应值。我尝试使用我用于另一种制表的代码:
my $pr = "%-12s";
my @headers = qw/............../;
my %names;
while (<DATA>) {
chomp;
my $line = <DATA>;
%{$names{$_}} = split /=|\s+/, $line;
}
printf $pr x @headers . "\n", @headers;
for (keys %names) {
my @ds = ($_);
for my $k (@headers[1 .. $#headers]) {
my $v = $names{$_}->{$k};
push @ds, $v ? $v : '-';
}
printf $pr x @ds . "\n", @ds;
}
这不会产生所需的结果,所以请帮我解决这个问题。