sub GetStats { my $ref_files = shift @_; my %lkup_by = (who => {}, how => {}, from => {}, ftp => {}); foreach my $file (@$ref_files) { ... while () { ... $lkup_by{who}{$file}{$who}++; $lkup_by{from}{$file}{$from}++; if ($how eq "ftp") { $lkup_by{ftp}{$file}{$who}++; } } close (LAST); } return ($lkup_by{who}, $lkup_by{from}, $lkup_by{ftp}); }