use strict; use warnings; use File::Copy; use File::Find; my @fromdirs = qw (/tmp/foo); my $todir = q{/tmp/bar}; find( sub { if (-f) { print "$File::Find::name -> $todir"; copy($File::Find::name, $todir) or die(q{copy failed:} . $!); } }, @fromdirs ); __END__ $ mkdir -p /tmp/foo $ mkdir -p /tmp/bar $ touch /tmp/foo/1 $ touch /tmp/foo/2 $ perl -l 635503.pl /tmp/foo/1 -> /tmp/bar /tmp/foo/2 -> /tmp/bar