Sto lavorando su un programma che richiede l'input dell'utente per due nomi di file. Sfortunatamente, il programma può facilmente interrompersi se l'utente non segue il formato specificato dell'input. Voglio scrivere codice che migliori la sua resilienza contro questi tipi di errori. Capirai quando si vede il mio codice:Regex: come rimuovere spazi aggiuntivi tra le stringhe in 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;
Ovviamente questo codice viene eseguito possono incorrere in errori se l'utente inserisce il tipo sbagliato di nome di file (file .tab anziché .txt o .seq invece di .qseq) . Voglio il codice che può fare una sorta di controllo per vedere che l'utente inserisce il tipo di file appropriato.
Un altro errore che potrebbe interrompere il codice è se l'utente immette troppi spazi prima dei nomi file. Ad esempio: sample1.qseq, (immagina 6 spazi qui) barcode.txt (noti i numerosi spazi dopo la virgola)
Un altro esempio: (immagina 6 spazi qui) sample1.qseq, barcode.txt (questa volta si noti il numero di spazi prima del primo nome file)
Desidero anche linee di codice in grado di rimuovere gli spazi aggiuntivi in modo che il programma non si interrompa. Penso che l'input dell'utente debba essere nel seguente tipo di formato: sample1.qseq, barcode.txt. L'input dell'utente deve essere in questo formato in modo da poter indicizzare correttamente i nomi dei file in una matrice e spostarli in un secondo momento.
Grazie a qualsiasi aiuto o suggerimento sono molto apprezzati!
Ho dimenticato di dire: Questo è solo uno dei sei script devo modificare per una corsa in pipe nella riga di comando. In altre parole, voglio che la corsa in pipe funzioni come: Script00.pl | Script01.pl | Script02.pl | Script03.pl | Script04.pl | Script05.pl | Script06.pl. Questo è il primo script in pipe – cooldood3490