#!/usr/bin/env perl
# =============================================================================
# Create
# name : Andre Rikkert de Koe date: Apr 2011
# descr : filefind
# This is a demo of programming in the Perl language.
# Its part of a project to implement a program to create a directory
# tree similar to the output of the Unix find program.
# Because of the example, we don't use the standard File::Find module.
# EUID : Any user who has read access to all the files being searched for.
# run : interactive
#
# Changes
# name : date:
# descr : short description
#
# =============================================================================
use File::Basename;
use Cwd;
# =============================================================================
# Functions
# =============================================================================
sub Usage
{
my ($progname, $mesg) = @_;
print "Usage: $progname directory\n";
}
#
# dir is directory to traverse
#
sub traverse
{
my ($dir) = @_;
my $curdir = getcwd();
my $curdir2 = getcwd();
foreach $file (@files)
{
my $pfile = $curdir2 . "/" . $file;
if (-d $file && ! -l $file)
{
if ($file ne ".." && $file ne ".")
{
traverse($file)
}
}
else
{
if (-f $file || -l $file)
{
}
else
{
print("WARNING: Could not process file $pfile\n")
}
}
}
}
sub start_traverse
{
my ($directory) = @_;
traverse($directory)
}
# =============================================================================
# MAIN
# =============================================================================
$progname = basename($0);
if ($#ARGV == 0)
{
$directory = $ARGV[0];
if (-d $directory)
{
start_traverse($directory);
}
else
{
Usage ($progname, "ERROR: Not a directory : $directory");
}
}
else
{
Usage ($progname, "ERROR: 1 argument expected");
}