#!/usr/bin/perl
use IO::All;
use strict;
use warnings;
use Getopt::Long;
use Pod::Usage;
my ( %options, $option, $result );
# Getopt::Long::Configure("no_ignore_case");
GetOptions( \%options, "help", "suffix=s", "amount=i", "directory=s",
+);
pod2usage( -exitstatus => 0, -verbose => 2 ) if $options{help}; # adde
+d
foreach $option ( $options{dir}, $options{suffix}, $options{amount} )
+{
pod2usage( -exitstatus => 2, -verbose => 2 ) unless $option;
}
$result = find( $options{dir}, $options{suffix}, $options{amount} );
if ( $result != 0 ) {
print qq(Found $result file(s)!\n);
}
else {
print qq(Nothing found!\n);
}
sub find {
my ( $dir, $time, $result, $suffix, $amount );
( $dir, $suffix, $amount ) = @_;
$time = time();
$amount = $amount * 60 * 60;
$result =
grep { $_ == 1 }
map { $time - $_ >= $amount }
map { ( $_->stat )[9] } # e.g i'm interested in this...
grep { $_->name =~ /.+\.$suffix$/ } # ...and this
io($dir)->all;
return $result;
}
__END__
=pod
=head1 NAME
myFind.pl
=head1 SYNOPSIS
myFind.pl [options]
=head1 OPTIONS
=over 8
=item B<-h, --help>
Prints a brief help message and exits.
=item B<-a, --amount>
Search for files older than <amount> hours, mandatory.
=item B<-d, --directory>
Directory to search in, mandatory.
=item B<-s, --suffix>
+
File suffix, mandatory.
=back
=head1 DESCRIPTION
It's just a finger exercise.
=head1 USAGE
./myFind.pl -a 1 -d . -s pl
=head1 AUTHOR
Karl Goethebier <karl.goethebier@gmx.de>
=cut