Thanks for all of the help. I have made adjustments and without using the autovivification module, I have the code working. I will admit, that it is not as elegant as I would like for it to be, but for now it works. Thanks.
for my $key (sort keys %starrez) {
if (exists $starrez{$key}{"dorm"}) {
} else {
$starrez{$key}{"dorm"} = "None";
}
if (exists $starrez{$key}{"greek"}) {
} else {
$starrez{$key}{"greek"} = "None";
}
if (exists $starrez{$key}{"RA"}) {
} else {
$starrez{$key}{"RA"} = "None";
}
if (exists $explanation{$key}) {
} else {
$explanation{$key} = "None";
}
my $temp_key = $starrez{$key}{"dorm"};
if ($starrez{$key}{"greek"} ne "None") {
$temp_key = $temp_key . "\|$starrez{$key}{greek}";
}
my $temp_semester = $semester;
if ($starrez{$key}{"RA"} ne "None") {
$temp_semester = "RA\-" . $temp_semester;
}
if (exists $flag_assignments{$temp_key}{"starrez"}) {
if (exists $flag_assignments{$temp_key}{"abbreviation"}) {
if (($flag_assignments{$temp_key}{"starrez"} ne "") and ($
+flag_assignments{$temp_key}{"abbreviation"} ne "")) {
#print "KEY [$key] TK [$temp_key] TS [$temp_semester]
+FAS [$flag_assignments{$temp_key}{starrez}] FAA [$flag_assignments{$t
+emp_key}{abbreviation}]\n";
}
}
}
# ONLY ONE FLAG PER CATEGORY, AND GREEKS LIVING ON CAMPUS WILL ALS
+O GET NR ACCESS TO THE HOUSE OF THE FRAT/SORORITY
if ($starrez{$key}{"dorm"} ne "None") {
if (exists $flag_assignments{$temp_key}{$temp_semester}) {
if ($flag_assignments{$temp_key}{$temp_semester} ne "") {
if (($flag_assignments{$temp_key}{$temp_semester} ne "
+x") and ($flag_assignments{$temp_key}{$temp_semester} ne "None")) {
print "PIK [$key] TK [$temp_key] TS [$temp_semeste
+r] FA [$flag_assignments{$temp_key}{$temp_semester}]\n";
if ($starrez{$key}{"RA"} ne "None") {
# Patron is an RA or CRA so needs appropriate
+access
if (exists $output{$key}) {
$output{$key} = $output{$key} . ",P$flag_a
+ssignments{$temp_key}{$temp_semester}";
} else {
$output{$key} = "C|$key|$flag_assignments{
+$temp_key}{abbreviation}|(P$flag_assignments{$temp_key}{$temp_semeste
+r}";
}
} else {
# Patron is not an RA or CRA so will just rece
+ive normal access
if (exists $output{$key}) {
$output{$key} = $output{$key} . ",P$flag_a
+ssignments{$temp_key}{$temp_semester}";
} else {
$output{$key} = "C|$key|$flag_assignments{
+$temp_key}{abbreviation},(P$flag_assignments{$temp_key}{$temp_semeste
+r}";
}
}
}
} else {
#print "TK [$temp_key]\n";
if ($temp_key =~ '|') {
my @temp_1 = split('|',$temp_key);
# Give access to their dorm
if (exists $output{$key}) {
$output{$key} = $output{$key} . ",P$flag_assig
+nments{$temp_1[0]}{$temp_semester}";
} else {
$output{$key} = "C|$key|$flag_assignments{$tem
+p_1[0]}{abbreviation}|(P$flag_assignments{$temp_1[0]}{$temp_semester}
+";
}
# Find which house their Greek affiliation is in a
+nd give them Non-Res (NR) access
for my $key2 (sort keys %flag_assignments) {
print "KEY2 [$key2]\n";
if (exists $flag_assignments{$key2}{"greek"})
+{
if ($flag_assignments{$key2}{"greek"} ne "
+") {
if ($temp_1[1] eq $flag_assignments{$k
+ey2}{"greek"}) {
my $temp2semester = "NR-" . $semes
+ter;
if ($flag_assignments{$key2}{"$tem
+p2semester"} ne "") {
if (exists $output{$key}) {
print "KEY [$key] NR-$seme
+ster [$flag_assignments{$key2}{$temp2semester}]\n";
$output{$key} = $output{$k
+ey} . ",P$flag_assignments{$key2}{$temp2semester}";
}
} else {
print BADOUTPUT "No NR flag,$k
+ey,$starrez{$key}{dorm},$starrez{$key}{greek},$starrez{$key}{RA}\n";
}
}
}
} else {
#print "TEMP_KEY [$temp_key]\n";
}
}
} else {
print BADOUTPUT "Not Greek and should be,$key,$sta
+rrez{$key}{dorm},$starrez{$key}{greek},$starrez{$key}{RA}\n";
}
}
}
}
}
|