Regex: Como remover espaços extras entre seqüências de caracteres em Perl

Eu estou trabalhando em um programa que leva a entrada do usuário para dois nomes de arquivo. Infelizmente, o programa pode quebrar facilmente se o usuário não seguir o formato especificado da entrada. Eu quero escrever código que melhore sua resiliência contra esses tipos de erros. Você entenderá quando vir meu código:

# Ask the user for the filename of the qseq file and barcode.txt file
print "Please enter the name of the qseq file and the barcode file separated by a comma:";
# user should enter filenames like this: sample1.qseq, barcode.txt

# remove the newline from the qseq filename
chomp ($filenames = <STDIN>);

# an empty array
my @filenames;

# remove the ',' and put the files into an array separated by spaces; indexes the files
push @filename, join(' ', split(',', $filenames))

# the qseq file
my $qseq_filename = shift @filenames;

# the barcode file.
my barcode = shift @filenames;

Obviamente, esse código é executado pode incorrer em erros se o usuário digitar o tipo incorreto de nome de arquivo (arquivo .tab em vez de .txt ou .seq em vez de .qseq). Eu quero código que pode fazer algum tipo de verificação para ver que o usuário insere o tipo de arquivo apropriado.

Outro erro que poderia quebrar o código é se o usuário inserir muitos espaços antes dos nomes dos arquivos. Por exemplo: sample1.qseq, (imagine 6 espaços aqui) barcode.txt (observe os numerosos espaços após a vírgula)

Outro exemplo: (imagine 6 espaços aqui) sample1.qseq, barcode.txt (Desta vez, observe o número de espaços antes do primeiro nome de arquivo)

Eu também quero linhas de código que podem remover espaços extras para que o programa não quebre. Eu acho que a entrada do usuário tem que estar no seguinte tipo de formato: sample1.qseq, barcode.txt. A entrada do usuário deve estar nesse formato para que eu possa indexar corretamente os nomes dos arquivos em uma matriz e alterá-los posteriormente.

Obrigado qualquer ajuda ou sugestões são muito apreciadas!

questionAnswers(5)

yourAnswerToTheQuestion