#!/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}; # added 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 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 =cut