in reply to relative paths...

Maybe your relative copy command fails because your current directory (use Cwd 'getcwd'; print getcwd(), "\n";) is different from what you expect?