Tôi đang làm việc trên một chương trình lấy dữ liệu nhập của người dùng cho hai tên tệp. Thật không may, chương trình có thể dễ dàng phá vỡ nếu người dùng không tuân theo định dạng được chỉ định của đầu vào. Tôi muốn viết mã để cải thiện khả năng phục hồi của nó đối với các loại lỗi này. Bạn sẽ hiểu khi bạn nhìn thấy mã của tôi:Regex: Cách loại bỏ khoảng trống thừa giữa các chuỗi trong 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;
Rõ ràng mã này chạy có thể chạy vào lỗi nếu người dùng nhập các loại sai của tên tập tin (file và.tab thay vì .txt hoặc .seq thay vì .qseq) . Tôi muốn mã có thể thực hiện một số loại kiểm tra để xem người dùng có nhập loại tệp thích hợp không.
Một lỗi khác có thể phá vỡ mã là nếu người dùng nhập quá nhiều khoảng trắng trước tên tệp. Ví dụ: sample1.qseq, (tưởng tượng 6 dấu cách ở đây) barcode.txt (Chú ý nhiều dấu cách sau dấu phẩy)
Ví dụ khác: (tưởng tượng 6 dấu cách ở đây) sample1.qseq, barcode.txt (Lần này thông báo số lượng không gian trước tên tệp đầu tiên)
Tôi cũng muốn các dòng mã có thể xóa thêm khoảng trắng để chương trình không bị hỏng. Tôi nghĩ rằng đầu vào của người dùng phải ở định dạng sau: sample1.qseq, barcode.txt. Đầu vào của người dùng phải ở định dạng này để tôi có thể lập chỉ mục đúng tên tệp vào một mảng và chuyển chúng ra sau.
Cảm ơn bất kỳ trợ giúp hoặc đề xuất nào được đánh giá cao!
tôi quên đề cập đến: Đây chỉ là một trong sáu kịch bản tôi phải thay đổi cho một đường ống chạy trong dòng lệnh. Nói cách khác, tôi muốn chạy đường ống để làm việc như: Script00.pl | Script01.pl | Script02.pl | Script03.pl | Script04.pl | Script05.pl | Script06.pl. Đây là kịch bản đầu tiên trong đường ống chạy – cooldood3490