find( sub { filestat( "ignored", $file_count, $dir_count, $total_size, $aged_file_count, $aged_total_size ); }, $pathname ); #### sub filestat { if (-d $_) { if ($_ ne "." && $_ ne "..") { ++$_[2]; } } else { ++$_[1]; $_[3] += -s _; my $file_age= (-C _); if ($file_age >= $lowrange && $file_age <= $highrange) { ++$_[4]; $_[5] += -s _; } } } #### sub iFileCount() { 0; } sub iDirCount() { 1; } sub iTotalSize() { 2; } sub iAgedFileCount() { 3; } sub iAgedTotalSize() { 4; } find( sub { filestat( $file_count, $dir_count, $total_size, $aged_file_count, $aged_total_size ); }, $pathname ); sub filestat { my($file_age); my($file_size); if (-d $_) { if ($_ ne "." && $_ ne "..") { ++$_[iDirCount]; } } else { ++$_[iFileCount]; $file_size = (-s _); $_[iTotalSize] += $file_size; $file_age = (-C _); if ($file_age >= $lowrange && $file_age <= $highrange) { ++$_[iAgedFileCount]; $_[iAgedTotalSize] += $file_size; } } }