Username | Roles | Type |date |SR NO|Remarks|
abc|admin |added | 01072015
abc|developer |deleted |01072015
abc|deploy |added |01072015
xyz |admin |deleted |01072015
xyz| deploy|deleted|01072015
cdf|deploy|added|01072015
####
Username |roles added |roles deleted |date
username |roles_added |roles deleted |date
abc |admin,deploy |developer |01072015
xyz ||admin,deploy |01072015
cdf |deploy||01072015
####
use strict;
use warnings;
use diagnostics;
use Data::Dumper;
open(FIL,"report.txt") or die("$!");
my %k=();
while (my $line=) {
next if $. < 2;
my ($user,$roles,$type,$dt,$empty1,$empty2)=split(/\|/,$line);
push @{$k{$user}{$type}}, $roles;
}
my @names=(sort keys(%k));
foreach ( @names) {
if ( @{$k{$_}{Added}} ne ''){
print "${k{user}}\n";
print join ',', @{$k{$_}{Added}};
print "\n";
}
if ( @{$k{$_}{Deleted}} ne '') {
print join ',', @{$k{$_}{Deleted}};
print "\n";
}
}