-3

我有一个文件要读取,如下所示。我需要从 read.txt 读取数据并写入另一个文件 write.txt,如下所示。read.txt 中还有很多其他值以类似的方式。我需要将它们写入write.txt。请帮忙。

读取.txt

value: length
var: cm
data: 10

value: weight
var: lb
data: 145

value:currency
var: dollar
data: 1000

写.txt

#Header Info, length_cm, weight_lb, currency_dollar
#data, 10, 145, 1000
4

1 回答 1

2

$/

my @attr_names;
my %rec;

local $/ = '';
while (<>) {
   my %attr;
   while (/^([^:]+):\s*(.*)/mg) {
      $attr{$1} = $2;
   }

   warn("Missing value"), next if !$attr{value};
   warn("Missing var"),   next if !$attr{var};
   warn("Missing data"),  next if !$attr{data};

   my $attr_name = "$attr{value}_$attr{var}";
   push @attr_names, $attr_name;

   $rec{$attr_name} = $attr{data};
}

print(join(',', @rec{@attr_names}), "\n");
于 2013-05-30T21:34:29.150 回答