BEGIN COMMENT
# Расчет времени создания.
END COMMENT
if( defined $Config{date} )
{
# Begin Callout A
	my( @Date ) = ( $Config{date} =~ /(d{4})-(d{2})-(d{2})
		(?: (d{1,2}):(d{2}):(d{2}))?/ );
	$Age = timelocal( $Date[5], $Date[4], $Date[3], $Date[2],
		$Date[1] — 1, $Date[0] — 1900 );
# End Callout A
}
else
{
# Begin Callout B
	my $AgeDelta = $Config{seconds};
	$AgeDelta += $Config{minutes} * 60; BEGIN COMMENT # в минуте 60 секунд END 
COMMENT
	$AgeDelta += $Config{hours} * 3600; BEGIN COMMENT # в часе 60 минут END 
COMMENT
	$AgeDelta += $Config{days} * 86400; BEGIN COMMENT # в сутках 24 часа END 
COMMENT
	$AgeDelta += $Config{weeks} * 604800; BEGIN COMMENT # в неделе 7 дней END 
COMMENT
	$AgeDelta += $Config{months} * 2419200; BEGIN COMMENT # в месяце 4 недели END 
COMMENT
	if( 0 == $AgeDelta )
	{
		Syntax();
		exit;
	}
	else
	{
		$Age = $Time — $AgeDelta;
	}
# End Callout B
}
print ($Config{delete}? «DELETING» : «Listing» );
print « any file found older than « . localtime( $Age ) . «
»;
print «that is larger or equal to $Config{minsize} bytes and smaller
	or equal to $Config{maxsize} bytes.
»;
print «-» x 40, «
»;
# Begin Callout C
foreach my $Path ( @{$Config{file_masks}} )
{
	my( $Dir, $Mask ) = ( $Path =~ /(.*)?([^]*?)$/ );
	ProcessMask( $Mask, $Dir );
}
# End Callout C
sub ProcessMask
{
	my( $Mask, $Dir ) = @_;
	$Dir = «.» if( $Dir eq «» );
	$Dir =~ s/+$//;
# Begin Callout D
	foreach my $Path ( glob( «$Dir$Mask» ) )
# End Callout D
	{
		next if( «.» eq $Path || «..» eq $Path );
		next unless( -f $Path );
# Begin Callout E
		my @Stats = stat( $Path );
		if( $Age >= $Stats[8] && $Stats[7] >= $Config{minsize}
			&& $Stats[7] <= $Config{maxsize} )
		{
			printf( «% 4d) %s
», ++$iCount, $Path );
			unlink( $Path ) if( $Config{delete} );
		}
# End Callout E
	}

Поделитесь материалом с коллегами и друзьями