Regex: So entfernen Sie zusätzliche Leerzeichen zwischen Zeichenfolgen in Perl

Ich arbeite an einem Programm, das Benutzereingaben für zwei Dateinamen übernimmt. Leider kann das Programm leicht abbrechen, wenn der Benutzer das angegebene Format der Eingabe nicht befolgt. Ich möchte Code schreiben, der seine Ausfallsicherheit gegen diese Art von Fehlern verbessert. Sie werden verstehen, wenn Sie meinen Code sehen:

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

Offensichtlich können Fehler bei dieser Codeausführung auftreten, wenn der Benutzer den falschen Dateinamentyp eingibt (.tab-Datei anstelle von .txt oder .seq anstelle von .qseq). Ich möchte, dass der Code überprüft, ob der Benutzer den entsprechenden Dateityp eingibt.

Ein weiterer Fehler, der den Code beschädigen könnte, besteht darin, dass der Benutzer zu viele Leerzeichen vor den Dateinamen eingibt. Beispiel: sample1.qseq (stellen Sie sich hier 6 Leerzeichen vor) barcode.txt (Beachten Sie die zahlreichen Leerzeichen nach dem Komma)

Ein weiteres Beispiel: (Stellen Sie sich hier 6 Leerzeichen vor) sample1.qseq, barcode.txt (Beachten Sie diesmal die Anzahl der Leerzeichen vor dem ersten Dateinamen.)

Ich möchte auch Codezeilen, die zusätzliche Leerzeichen entfernen können, damit das Programm nicht kaputt geht. Ich denke, die Benutzereingaben müssen im folgenden Format vorliegen: sample1.qseq, barcode.txt. Die Benutzereingabe muss in diesem Format erfolgen, damit ich die Dateinamen ordnungsgemäß in ein Array indizieren und später verschieben kann.

Vielen Dank jede Hilfe oder Anregungen sind sehr dankbar!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage