2013-05-30 4 views
-3

У меня есть файл для чтения, как показано ниже. Мне нужно прочитать данные из read.txt и записать в другой файл write.txt, как показано ниже. в read.txt было так много других значений. Мне нужно записать их в файл write.txt. пожалуйста помоги.Чтение из файла и запись в файл в perl

read.txt

value: length 
var: cm 
data: 10 

value: weight 
var: lb 
data: 145 

value:currency 
var: dollar 
data: 1000 

write.txt

#Header Info, length_cm, weight_lb, currency_dollar 
#data, 10, 145, 1000 
+2

Итак ... что имеет длину 10 см, весит 145 фунтов и затраты 1000 долларов? ? – TLP

+1

это лишь некоторые случайные значения. Я думаю, что данные ничего не означают – user2247287

+0

Слишком широкий. Придумайте что-нибудь, прежде чем размещать здесь. – djechlin

ответ

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"); 
+1

Спасибо за ваш ответ. он должен добавляться к уже имеющимся данным в файле write.txt, я имею в виду, что новые данные должны добавляться после #Header Info, и данные должны добавляться после #data – user2247287

+1

Ничего, с чем вы не можете справиться. – ikegami

Смежные вопросы