2013-05-30 120 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

相關問題