#!usr/local/bin/perl
my $path='CustData.txt';
open(DATA, "<$path") || die "Couldn't open $path for reading: $!\n";
while (<DATA>)
{
chomp;
my ($id, $title, $surname, $forename, $sex, $dob, $vision) = split
+(/,/);
$HoH{$id} = {'title' => $title, 'surname' => $surname, 'forename'
+=> $forename, 'sex' => $sex, 'dob' => $dob, 'vision' => $vision,};
}
close(DATA);
$range1=1;
$range2=10;
$range3=1;
$range4=10;
$person_count=0;
print("Range\t10-20\t20-30\t30-40\t41-50\t51-60\t61-70\t71-80\t81-90\t
+91-99\n");
print("Count");
for ($counter=0;$counter<9;$counter++)
{
$range3=$range3+10;
$range4=$range4+10;
print("\t ".personCount($range3,$range4));
}
print("\n");
print("Percent\t");
for ($counter=0;$counter<9;$counter++)
{
$range1=$range1+10;
$range2=$range2+10;
printf(" %.0f\t",(percent($range1,$range2)));
}
print("\n");
sub personCount
{
($x,$y) = @_;
my ($vision_total,$person_count)=0;
foreach my $id (sort keys %HoH)
{
if( ($HoH{$id}->{'vision'}>=$x) & ($HoH{$id}->{'vision'}<=$y)
+)
{
++$person_count;
$vision_total=$vision_total+$HoH{$id}->{'vision'};
}
}
return int($person_count);
}
sub percent
{
($x,$y) = @_;
$percent = 0;
my ($total_person_count,$vision_total,$person_count)=0;
foreach my $id (sort keys %HoH)
{
++$total_person_count;
}
foreach my $id (sort keys %HoH)
{
if( ($HoH{$id}->{'vision'}>=$x) & ($HoH{$id}->{'vision'}<=$y)
+)
{
++$person_count;
$vision_total=$vision_total+$HoH{$id}->{'vision'};
}
}
return $percent = ($person_count/$total_person_count)*100;
}
|