my @Divisions = qw(ABER BERF CECC DADD);
my @rows;
my %AG;
my $Rec= {};
my %positions;
my $csv = Text::CSV_XS->new ({ binary => 1, auto_diag => 1},encoding => "utf-8");
#CSV file with comma delimited data
open my $fh1, "<", "test.csv" or die "test.csv: $!";
while (my $row = $csv->getline ($fh1)) {
# do something with @$row
if ($row->[12]) {
push @rows, $row;
}
else {
push @rows, $row;
}
}
close $fh1 or die "data.csv: $!";
foreach my $rec (@rows) {
foreach my $dept (@Divisions) {
if ($rec->[14] =~ /^$dept/ && $rec->[15] =~ /^A\W[1-5]|B\W[1-2]/) {
my $Rec = {
SECTION=>$rec->[0],
GRADE=>strip_hyphen($rec->[1]),
POSITION=>$rec->[2],
NAME=>invert_name($rec->[3]),
AGE =>convert_date($rec->[4]),
GENDER=>$rec->[5],
};
push @{$AG{$rec->[10]}},$Rec;
}
}
}
foreach my $A (sort keys %AG) {
foreach my $p (@{$AG{$A}}) {
print $p->{'GRADE'}," ", $p->{'NAME'}," ",$p->{'POSITION'},$p->{'AGE'}," ",$p->{'GENDER'}, "\n";
}
}
####
VAR1 = 'ABER - Advanced Technologies';
$VAR2 = [
{
'NAME' => 'J. Green',
'DATE_OF_BIRTH' => '8/18/1959',
'SECTION' => 'ABER',
'POSITION' => 'DIRECTOR',
'AGE' => 55,
'GRADE' => 'B2'
}
];
$VAR3 = 'BERF - Satellite Research';
$VAR4 = [
{
'NAME' => 'P. Smith',
'DATE_OF_BIRTH' => '12/11/1957',
'SECTION' => 'BERF',
'POSITION' => 'CHIEF',
'AGE' => 56,
'GRADE' => 'B1'
},
{
'NAME' => 'R. Forest',
'DATE_OF_BIRTH' => '1/18/1954',
'SECTION' => 'BERF',
'POSITION' => 'SENIOR OFFICER',
'AGE' => '60 GREEN',
'GRADE' => 'A5'
},
{
'NAME' => 'R.Forest',
'DATE_OF_BIRTH' => '03/09/1964',
'SECTION' => 'BERF',
'POSITION' => 'SENIOR OFFICER',
'AGE' => 'Vacant',
'GRADE' => 'A5'
},
{
'NAME' => 'K. King',
'DATE_OF_BIRTH' => '8/9/1960',
'SECTION' => 'BERF',
'POSITION' => 'SENIOR OFFICER',
'AGE' => 54,
'FEMALE' => '',
'GRADE' => 'A5'
},
];
####
B2, J. Green, DIRECTOR,55,M
B1,P.Smith,CHIEF,54,M
A5,R.Forest,SENIOR OFFICER,60,M
K.King,SENIOR OFFICER,54, M (A5 is excluded because it appears more than once)
P.Turner,50, M (A5 is excluded because it appears more than once)