2016-08-18 61 views
0

我是perl編程的新手,熱衷於學習它, 我需要從下面的示例文件中提取一些數據。文件「test.txt」的內容是多個組和對象,但每行添加。從輸入文件創建組和添加對象

集組地址組別1添加XYZ1
集組地址組別1添加XYZ2
組羣地址組2添加XYZ1
組羣地址組2添加XYZ4
組羣地址組2添加XYZ4
組羣地址組3添加XYZ5

我需要上述轉換爲線,

組名稱組別1添加成員XYZ1,XYZ2
組名稱組2添加成員XYZ1,XYZ4,XYZ5
組名稱組1成員添加XYZ4,XYZ5

爲我的邏輯可以是
1.循環讀取每一行中的陣列,
2.存儲組名稱和歸檔變量
3.比較組變量,如果相同的連接字段變量。

如果有人可以糾正邏輯並幫助我,那真的很有幫助。 提前欣賞。

問候,

桑迪普

回答

1

當你使用Perl,您會聽到類似「唯一」或「分組」 - 很可能它是一個哈希表工作又名關聯數組:

use warnings; 
use strict; 

my %hash; 
while (<>) { 
    # .... extract key & value from your data 
    $hash{$unique_key} .= " ".$added_value; 
} 
# ... 

foreach (keys %hash) { 
    do_something($_, $hash{$_}); 
    # this will be the key and all the 
    # corresponding values combined. 
};