cat Makefile.PL my $to_symlink = '/blah/blah/legacy/lib'; use File::Find; use ExtUtils::Command qw[ mkdir copy ]; my @dirs; my @files; find ( sub { return if $_ =~ /^\.{1,2}$/; if( -d $File::Find::name ){ push @dirs, $File::Find::name; } else { push @files, $File::Find::name; } return;},$to_symlink); s/\Q$to_symlink// for @dirs ; mkpath @dirs; for ( @files ){ my $source = $_; s/\Q$to_symlink//; cp $source, $_; } WriteMakefile( ...