Steve Jardine wrote:
> Hiya all,

Hello,

> Here's a sceneraio:
> 
> 
> I have a directory tree:
> 
> A-
>   |->B
>   |->C
>      -->D-
>            ->E
> 
> 
> In this directory tree I have possibly several same named files
> in different directories. What I want to do is to recursively
> copy all the files in the directory tree to a single directory,
> say directory F. In that directory I would like duplicate files
> names to have prepended differences.
> 
>     Example:
> 
>         A/B/t.txt
>         A/C/t.txt
>         A/D/E/t.txt
> 
>     all being copied into the directory F looking like:
> 
>        F/t1.txt
>        F/t2.txt
>        F/t3.txt
> 
>     Any ideas?

UNTESTED:

use File::Copy;
use File::Basename;
use File::Find;

my $from_dir = 'A';
my $to_dir   = 'F';

my %count;
find sub {
    my ( $name, undef, $ext ) = fileparse $_, qr/\..*/;
    copy( $_, "$to_dir/$name" . ++$count{ $name } . $ext )
        or warn "Cannot copy '$File::Find::name' $!";
    }, $from_dir;

__END__



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to