Modules: File::Find
 
File::Find
  • Performs recursive searches through a directory tree, and calls a callback function.
#!perl -w

use strict;
use File::Find;

my %directories;
find( \&filehandler, "c:/" );

for my $filename ( sort keys %directories ) {
    my @dirlist = @{$directories{ $filename } };
    if ( scalar @dirlist > 1 ) {
        print "$filename\n";
        for ( @dirlist ) {
            print " $_\n";
            }
        }   # if
    }   # for

sub filehandler {
    # Check to make sure that it's a file, not a directory
    return unless -f $File::Find::name;

    # Just take the filename, and convert to lowercase
    my $nameonly = lc $_;

    # See if it's a DLL or EXE file
    return unless $nameonly =~ m/\.(dll|exe)$/i;

    $directories{ $nameonly } = [] unless defined $directories{ $nameonly };
    push( @{$directories{ $nameonly } }, $File::Find::dir );
    }
cmc.dll
 c:/WINNT/system32
 c:/CCMAIL6
commdlg.dll
 c:/WINNT/system32
 c:/WINNT/system
 c:/CCMAIL6/LIV
compobj.dll
 c:/WINNT/system32
 c:/WINNT/system
Index
Introduction
What Is Perl?
Perl Resources
Running a Perl Program
Perl Thinking
Data Types
Scalars
Strings: Single Quoted
Strings: Double Quoted
Scalar operations
Scalar comparisons
Variables
Lists
Using Lists
Control Structures
Hashes
Hash Manipulation
File Handling
Regex Matching
Regex Matching: Ex. 1
Regex Matching: Ex. 2
Regex Replacing
Subroutines
Anonymous subs
References
Structures
Modules
Modules: File::Find
Modules: Internet
Modules: Win32::*
Everything Else
  Next page >>>