Regex: Jak usunąć dodatkowe spacje między ciągami znaków w Perlu

Pracuję nad programem, który pobiera dane wejściowe użytkownika dla dwóch nazw plików. Niestety program może się łatwo złamać, jeśli użytkownik nie zastosuje określonego formatu danych wejściowych. Chcę napisać kod, który poprawia jego odporność na tego typu błędy. Zrozumiesz, kiedy zobaczysz mój kod:

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

Oczywiście ten kod działa z błędami, jeśli użytkownik wprowadzi niewłaściwy typ pliku (plik .tab zamiast .txt lub .seq zamiast .qseq). Chcę, aby kod, który może wykonać pewien rodzaj kontroli, sprawdził, czy użytkownik wprowadza odpowiedni typ pliku.

Innym błędem, który może złamać kod, jest wprowadzenie przez użytkownika zbyt wielu spacji przed nazwami plików. Na przykład: sample1.qseq, (wyobraź sobie 6 spacji tutaj) barcode.txt (Zwróć uwagę na liczne spacje po przecinku)

Inny przykład: (wyobraź sobie 6 spacji tutaj) sample1.qseq, barcode.txt (Tym razem zauważ liczbę spacji przed pierwszą nazwą pliku)

Chcę także, aby linie kodu mogły usuwać dodatkowe spacje, aby program się nie zepsuł. Myślę, że dane wejściowe użytkownika muszą mieć następujący format: sample1.qseq, barcode.txt. Dane wprowadzane przez użytkownika muszą być w tym formacie, aby móc poprawnie indeksować nazwy plików w tablicy i przesuwać je później.

Dziękujemy za pomoc i sugestie są bardzo mile widziane!

questionAnswers(5)

yourAnswerToTheQuestion