I decided to focus just on the data for just one group for just one week: %{$week{$_}}
. Its value is a hash which may have keys titled 'scheduled'
, 'occurred'
, and/or 'excused'
.
I pass a reference to that hash's value to a subroutine.
sub _calculate_group_week { my $v = shift; my %group_week = %{$v}; my ($sch, $occ, $percent); $sch = defined ($group_week{'sched'}) ? $group_week{'sched'} : 0; $occ = defined ($group_week{'occur'}) ? $group_week{'occur'} : 0; $percent = $sch ? $occ / $sch * 100 : 0; return ($sch, $occ, $percent); }
The top part of the original subroutine now looked like this:
foreach my $period (@overall) { my %week = %{$period}; foreach (keys %week) { my ($sch, $occ, $percent) = _calculate_group_week(\%{$week{$_}});
Previous | Back to start of show | Next |
Slide: 7 after_staring | © 2003 James E. Keenan |