Como lidar com nomes de arquivos com espaços?

Eu uso o Perl no Windows (Active Perl). Eu tenho um programa perl para glob os arquivos na pasta atual e concatená-los todos usando o comando dos copy chamado de dentro usando system () ...

Quando executo, isso gera um erro dos dizendo "O sistema não consegue encontrar o arquivo especificado". Está relacionado aos espaços nos nomes de arquivos que tenho.

Este é o código perl: -

@files = glob "*.mp3";
$outfile = 'final.mp3';
$firsttime = 1;
foreach (@files)
{

    if($firsttime == 1)
    {
       @args = ('copy' ,"/b ","$_","+","$outfile", "$outfile");
       system (@args);
       #system("copy /b '$_'+$outfile $outfile"); 
       $firsttime = 0;  
    }
    else
    {
       @args = ('copy' ,"/b ","$outfile","+","$_", "$outfile");
       system (@args);
       #system("copy /b $outfile+'$_' $outfile"); 
    }

}

glob retorna uma matriz de nomes de arquivos na minha pasta atual. Esses nomes de arquivos têm espaços entre eles, portanto os elementos da matriz têm espaços entre eles. Quando eu uso o sistema (...) para executar meu comando de cópia nesses elementos da matriz usando "$ _", como mostrado acima, ele gera um erro como acima.

Eu tentei duas maneiras pelas quais eu poderia ligar para o sistema (...) mas sem sucesso.

Eu gostaria de saber,

1] Como posso fazer isso funcionar em arquivos que possuem espaços entre eles usando o código acima. Como 'escapar' do espaço em branco nos nomes de arquivo.

2] Qualquer solução alternativa no Perl para conseguir a mesma coisa. (Os simples são bem-vindos ..)

questionAnswers(6)

yourAnswerToTheQuestion