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 }