Regex: Как удалить лишние пробелы между строками в Perl

Я работаю над программой, которая принимает пользовательский ввод для двух имен файлов. К сожалению, программа может легко сломаться, если пользователь не будет следовать указанному формату ввода. Я хочу написать код, который повысит его устойчивость к этим типам ошибок. Вы поймете, когда увидите мой код:

# 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;

Очевидно, что выполнение этого кода может привести к ошибкам, если пользователь введет неправильный тип имени файла (файл .tab вместо .txt или .seq вместо .qseq).Мне нужен код, который может выполнять некоторую проверку, чтобы убедиться, что пользователь вводит соответствующий тип файла.

Другая ошибка, которая может привести к поломке кода, заключается в том, что пользователь вводит слишком много пробелов перед именами файлов. Например: sample1.qseq,(представьте, что здесь 6 пробелов) barcode.txt (обратите внимание на многочисленные пробелы после запятой)

Другой пример: (представьте, что здесь 6 пробелов) sample1.qseq,barcode.txt (на этот раз обратите внимание на число пробелов перед первым именем файла)

Мне также нужны строки кода, которые могут удалять лишние пробелы, чтобы программа не ломалась. Я думаю, что пользовательский ввод должен быть в следующем формате: sample1.qseq, barcode.txt. Пользовательский ввод должен быть в этом формате, чтобы я мог правильно индексировать имена файлов в массив и переносить их позже.

Спасибо, мы будем очень признательны за любую помощь или предложения!

6
задан cooldood3490 9 June 2012 в 01:30
поделиться