2016-08-18 70 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. 
};