Pracuję nad programem, który pobiera dane użytkownika dla dwóch nazw plików. Niestety program może się łatwo zepsuć, jeśli użytkownik nie zastosuje się do określonego formatu danych wejściowych. Chcę napisać kod, który poprawia jego odporność na tego typu błędy. Zrozumiesz, gdy widzisz mój kod:Regex: Jak usunąć dodatkowe spacje między ciągami w Perlu
# 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 kod jest uruchamiany może napotkasz błędy, jeśli użytkownik wpisze niewłaściwy typ pliku (plik .tab zamiast .txt lub .seq zamiast .qseq) . Chcę kod, który może wykonać pewien rodzaj sprawdzenia, aby zobaczyć, że użytkownik wprowadza odpowiedni typ pliku.
Innym błędem, który może złamać kod, jest sytuacja, w której użytkownik wprowadzi zbyt wiele spacji przed nazwami plików. Na przykład: sample1.qseq, (wyobrazić sobie 6 spacji) barcode.txt (Zwróć uwagę na spacje po przecinku)
Inny przykład: (proszę wyobrazić sobie 6 miejsc) sample1.qseq, barcode.txt (tym razem liczba spacji przed pierwszą nazwą pliku)
Chcę również linii kodu, który może usunąć 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 wejściowe użytkownika muszą być w tym formacie, aby poprawnie indeksować nazwy plików w tablicy i później je przenosić.
Dzięki za pomoc lub sugestie są bardzo mile widziane!
zapomniałem wspomnieć: Jest to tylko jeden z sześciu skryptów muszę modyfikować dla potokowego uruchomienia w linii poleceń. Innymi słowy, chcę, aby uruchomiona instalacja działała jak: Script00.pl | Script01.pl | Script02.pl | Script03.pl | Script04.pl | Script05.pl | Script06.pl. To jest pierwszy skrypt w rurze – cooldood3490